【发布时间】:2020-08-08 20:01:28
【问题描述】:
我正在尝试使用以下条件语句将 NA 分配给每个事件的前两行: 如果每个事件的第一天的值“变量”= 0,请检查前一天。如果前一天(前一个事件的最后一天)的“变量”> 0,则将 NA 分配给第一天“变量”= 0 的事件的前两行。如果前一天有一个“变量”= 0,则什么也不做。
这是一个例子:
day <- c(1:16)
event<- c(1,1,2,3,4,4,4,5,5,5,6,6,6,7,7,7)
variable<- c(0,0,5,0,0,0,10,0,1,1,0,0,0,0,0,0)
A<- data.frame(day, event, variable)
day event variable
1 1 1 0
2 2 1 0
3 3 2 5
4 4 3 0
5 5 4 0
6 6 4 0
7 7 4 10
8 8 5 0
9 9 5 1
10 10 5 1
11 11 6 0
12 12 6 0
13 13 6 0
14 14 7 0
15 15 7 0
16 16 7 0
它应该是什么样子
day event variable
1 1 1 0
2 2 1 0
3 3 2 5
4 4 3 NA
5 5 4 0
6 6 4 0
7 7 4 10
8 8 5 NA
9 9 5 NA
10 10 5 1
11 11 6 NA
12 12 6 NA
13 13 6 0
14 14 7 0
15 15 7 0
16 16 7 0
注意:事件 1 是否必须分配 NA 并不重要 我尝试在 if 条件下执行此操作,但效果不佳。任何想法?并提前感谢!
【问题讨论】:
标签: r if-statement dplyr conditional-statements na