如何在数据框中的特定事件后替换值?

铝合金

我正在尝试根据事件的发生率替换数据框中的值。在列中,exp_recode我显示了所需的输出。time_point显示事件时间,以指示该事件在events列中的时间顺序我想将z感兴趣的事件之后的任何事件重新编码为0 请注意,存在重复id的,因为它们是纵向数据。

如果您想知道为什么以后要重新编码/标记事件z,我打算将其删除,因为这些事件不是我感兴趣的事件。但是我不想在分析的这个阶段删除它们。

id <- c(rep(1, 6),rep(2,4))
time_point <- c(1:6, 1:4)
event <- c("b","b","c","z", "d", "a", "e", "b", "z", "d")
exp_recode<- c(c("b","b","c","z", 0, 0, "e", "b", "z", 0))
df <- data.frame(id, time_point, event, exp_recode)
df
   id time_point event exp_recode
1   1          1     b          b
2   1          2     b          b
3   1          3     c          c
4   1          4     z          z
5   1          5     d          0
6   1          6     a          0
7   2          1     e          e
8   2          2     b          b
9   2          3     z          z
10  2          4     d          0
瑞·巴拉达斯(Rui Barradas)

尝试by(花了我一段时间,因为我一直在尝试ave,忘记了它返回一个数值向量。)

fun <- function(x){
    x <- as.character(x)
    i <- min(which(x == "z"))
    x[seq_along(x)[-seq_len(i)]] <- 0
    x
}
df$exp_recode2 <- unlist(by(df$event, df$id, FUN = fun))
df

我敢打赌,有一种更简单的dplyr方法可以做到这一点,但是这种方法R使用base

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用替换方法后在数据框中选择不同的特定值

如何在数据框中随机分配值

如何在数据框中获取 linalg 值

如何在数据框中的列之间匹配值

如何在数据框Python中更改值

如何在数据框中获取某个值的列名

如何在数据框列表中使用purrr :: map来修改特定数据框中的列值,而不更改列表中的其他数据框?

如何迭代替换数据框中特定列的值?

如何替换熊猫中时序数据框的特定值?

如何为数据框中的事件分配特定值?

如何在数据框的特定条件下将对与错替换为数值

如何在数据框中用具有 2 个条件的 if 循环替换值?

如何在数据框的列上使用R的diff函数,条件是在另一列中具有特定值

替换数据框中的特定值

在数据框中替换给定索引的值

如何替换数据框中的数据值

如何检查特定列在数据框中是否具有特定值?

用新的数据框替换数据框中的特定值

如何在数据框列(熊猫)中放置特定的字典值

如何在数据框中的特定数据组上执行mutate功能(ddply)?

在删除熊猫数据框中的重复项后替换特定的列值

如何在数据框中检查前一行值与当前行值

如何在数据框中查找值并使用 python/pandas 返回匹配值?

如何在数据框中添加基于数据长度的值作为字符串的列

应用groupby后如何在数据框中添加列

如何在数据框列中的字符后删除字符串的其余部分?

如何在数据框中添加名称并更改R中的特定单元格

如何在数据框中的特定单元格中填充颜色?

如何替换熊猫数据框中的值?