我正在尝试清理我的数据,以便只保留在第一个采样期间观察到的重复值。例如,如果我的数据框看起来像这样:
df <- data.frame(ID = c(1,1,1,2,2,2,3,3,4,4), period = c(1,2,3,1,2,3,2,3,1,3), mass = rnorm(10, 5, 2))
df
ID period mass
1 1 1 3.313674
2 1 2 6.371979
3 1 3 5.449435
4 2 1 4.093022
5 2 2 2.615782
6 2 3 3.622842
7 3 2 4.466666
8 3 3 6.940979
9 4 1 6.226222
10 4 3 4.233397
我希望只保留在第1个时期测量的个体中重复出现的观察结果。我的新数据框将如下所示:
ID period mass
1 1 1 3.313674
2 1 2 6.371979
3 1 3 5.449435
4 2 1 4.093022
5 2 2 2.615782
6 2 3 3.622842
9 4 1 6.226222
10 4 3 4.233397
使用此页面上的建议(删除所有唯一行),我尝试使用以下命令,但它保留了个体3的观测值(该个体在第1期未被测量)。
subset(df, duplicated(ID) | duplicated(ID, fromLast=T))