我有一个df超过1000人的纵向数据,如下所示:
id year name status
1 1984 James 4
1 1985 James 1
2 1983 John 2
2 1984 John 1
3 1980 Amy 2
3 1981 Amy 2
4 1930 Jane 4
4 1931 Jane 5
Run Code Online (Sandbox Code Playgroud)
我正在尝试确定数据的子集id.例如,我有一个dd由id我想要分组的s 组成的向量:
dd<-c(1,3)
Run Code Online (Sandbox Code Playgroud)
我尝试过以下但是没有用,例如:
subset<-subset(df, subset(df$id==dd))
Run Code Online (Sandbox Code Playgroud)
要么
subset<-subset(df, subset(unique(df$id))==dd))
Run Code Online (Sandbox Code Playgroud)
要么
subset<-df[which(unique(df$id)==dd),]
Run Code Online (Sandbox Code Playgroud)
或者我试过一个for循环
for (i in 1:2){
subset<-subset(df, subset=(unique(df$id)==dd[i]))
}
Run Code Online (Sandbox Code Playgroud)
是否有办法只选择ids与矢量中的数字相匹配的行dd?
使用%in%和逻辑索引:
df[df$id %in% dd,]
id year name status
1 1 1984 James 4
2 1 1985 James 1
5 3 1980 Amy 2
6 3 1981 Amy 2
Run Code Online (Sandbox Code Playgroud)