我的数据框看起来像
> mydata
ID Observation X
1 1 3
1 2 3
1 3 3
1 4 3
2 1 4
2 2 4
3 1 8
3 2 8
3 3 8
我有一些代码可以计算每个ID的观察数量,确定哪些ID具有满足特定条件的多个观察值(在这种情况下,> = 3个观察值),并返回带有这些ID的向量: / p>
> vals
[1] 1 3
现在我想操纵与这些ID相关联的X值,例如通过向每个值添加1,给出如下数据框:
> mydata
ID Observation X
1 1 4
1 2 4
1 3 4
1 4 4
2 1 4
2 2 4
3 1 9
3 2 9
3 3 9
我对R很陌生,我不确定如何做到这一点。知道每个ID的X是不变的可能会有所帮助。
答案 0 :(得分:1)
致电mydata$ID %in% vals
会返回TRUE
或FALSE
,以指明每行的ID值是否在vals
向量中。当您将其添加到当前mydata$X
中的数据时,TRUE
和FALSE
将分别转换为1和0,从而产生所需的结果:
mydata$X <- mydata$X + mydata$ID %in% vals
# mydata
# ID Observation X
# 1 1 1 4
# 2 1 2 4
# 3 1 3 4
# 4 1 4 4
# 5 2 1 4
# 6 2 2 4
# 7 3 1 9
# 8 3 2 9
# 9 3 3 9