![](/img/trans.png)
[英]How to extract and write to a file all rows in one column per unique value of a row in another column?
[英]Extract all rows containing second unique value for each column by group
這與提取另一列的每個唯一值的包含第一個值的所有行中提出的問題直接相關
但是我不想返回檢測到ID的第一年,而是只返回第二年的所有行。
改編以上主題中的答案
test
ID yr
1 54V 1
2 54V 1
3 54V 1
4 54V 2
5 54V 2
6 56V 2
7 56V 2
8 56V 3
9 59V 1
10 59V 2
11 59V 3
至
test2 <- test[with(test, as.logical(ave(yr, ID, FUN = function(x) x==x[2L]))),]
or
test2 <- setDT(test)[, .SD[yr==yr[2L]], ID]
產生奇怪的結果。
ID yr
1 54V 1
2 54V 1
3 54V 1
5 56V 2
6 56V 2
9 59V 2
我想要的結果是
ID yr
4 54V 2
5 54V 2
8 56V 3
10 59V 2
我究竟做錯了什么?
subset(test,as.logical(ave(yr,ID,FUN=function(x)x==unique(x)[2])))
ID yr
1 54V 2
2 54V 2
3 56V 3
4 59V 2
library(data.table)
setDT(test)[,.SD[yr==unique(yr)[2]],by=ID]
ID V1
1: 54V 2
2: 54V 2
3: 56V 3
4: 59V 2
test%>%group_by(ID)%>%filter(yr==unique(yr)[2])
# A tibble: 4 x 2
ID yy
<chr> <int>
1 54V 2
2 54V 2
3 56V 3
4 59V 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.