【发布时间】:2020-12-03 01:47:50
【问题描述】:
我有一个问题是给一个组赋值。例如我的数据如下:
example.frame = data.frame("ID" = c(1,1,1,1,2,2,2,3,3,3,3,4,4), "AL" = c(1,1,2,4,2,3,4,1,5,1,2,3,4))
现在我想生成一个新变量true,如果任何 AL 包含一个 1,那么它会将 1 分配给整个组 (ID),这样生成的数据帧如下所示:
example.frame = data.frame("ID" = c(1,1,1,1,2,2,2,3,3,3,3,4,4), "AL" = c(1,1,2,4,1,3,4,1,5,1,2,3,4), "true" = c(1,1,1,1,0,0,0,1,1,1,1,0,0))
如果有人知道如何做到这一点,那就太好了。
【问题讨论】:
-
试试
transform(example.frame, new = ave(AL, ID, FUN = function(x) any(x == 1)))