我带着一个问题回来了,我在一个例子上得到了答案,但在我的数据上没有。从下面提出的data.frame“数据”中,个人(id)测试了3次(T = 1、2或3),我想构建一个新的data.frame“data2”,其中包含价值为Y 变量在所有三个时间点都是“是”。
> data <- data.frame(id = rep(c(1:10), 3),
T = gl(3, 10),
X = sample(1:30),
Y = sample(c("yes", "no"), 30, replace = TRUE),
Z = sample(1:40, 30),
Z2 = rnorm(30, mean = 5, sd = 0.5))
> head(data)
id T X Y Z Z2
1 1 1 10 yes 15 5.993605
2 2 1 18 no 22 6.096566
3 3 1 5 no 24 5.101393
4 4 1 15 yes 18 4.944108
5 5 1 23 no 34 4.634176
6 6 1 13 no 27 5.576015
我不想遵循一个好的提议,但这并没有真正奏效,我想分别选择当 T=="1" 时 Y 为 "yes" 的行,然后对 T=="2" 和T==“3”。像那样 :
> data1y <- subset(data, T=="1"&Y=="yes")
> data2y <- subset(data, T=="2"&Y=="yes")
> data3y <- subset(data, T=="3"&Y=="yes")
那时,我必须从这 3 个 data.frame 中匹配“id”,并只保留在所有三个 data.frame 上匹配的那些,将它们放回新的 data.frame。有人可以帮我完成这最后一步吗?谢谢