在r中使用另一个数据帧中的两列对一个数据帧中的列进行子集设置
我试过解决类似的问题,但没能 我有两个数据帧。我想使用另一个数据帧中的两列来子集一个数据帧中的一列 数据帧如下所示在r中使用另一个数据帧中的两列对一个数据帧中的列进行子集设置,r,dataframe,subset,R,Dataframe,Subset,我试过解决类似的问题,但没能 我有两个数据帧。我想使用另一个数据帧中的两列来子集一个数据帧中的一列 数据帧如下所示 df1 <- data.frame(x = c(22,23,22,34,21), y = c(1,4,2,3,2)) df1 x y 1 22 1 2 23 4 3 22 2 4 34 3 5 21 2 df2 <- data.frame(a = c("John", "Matt", "foo","boo"),
df1 <- data.frame(x = c(22,23,22,34,21),
y = c(1,4,2,3,2))
df1
x y
1 22 1
2 23 4
3 22 2
4 34 3
5 21 2
df2 <- data.frame(a = c("John", "Matt", "foo","boo"),
b = c(4, NA, NA,2),
c = c(3, NA, 3, 3))
df2
a b c
1 John 4 3
2 Matt NA NA
3 foo NA 3
4 boo 2 3
您可以尝试以下方法:
dfnew<-list()
for (i in 1:nrow(df2)){
dfnew[[i]]<-df1[which(df1$y %in% df2[i,2:3]),]
}
dfnew您可以尝试以下方法:
dfnew<-list()
for (i in 1:nrow(df2)){
dfnew[[i]]<-df1[which(df1$y %in% df2[i,2:3]),]
}
dfnew我们可以使用lappy
lapply(split(df2[-1], as.character(df2$a)), function(x) df1[df1$y %in% unlist(x),])
我们可以使用lappy
lapply(split(df2[-1], as.character(df2$a)), function(x) df1[df1$y %in% unlist(x),])
谢谢但是我能用矢量化运算得到类似的结果吗?谢谢!但是我可以使用向量化运算得到类似的结果吗。