R 中的 %in% 函数,两个参数
%in% function in R, two arguments
我一直在尝试根据另外两个不同大小的数据帧(df1、df2)和以下条件创建一个数据帧 (df3):
在 df3 中包含所有行,其中:df1$id = df2$id 和 df1$cond=df2$cond
我试过了:
df3<-df1[(df1$id %in% df2$id &
df1$fcond %in% df2$cond),]
但它会选择至少有一个参数为真而不是两个都为真的行。
虚拟数据:
t<- c(1,2,3,4,5,6,7,8,9,10)
id<-c(1,1,2,2,3,3,4,4,5,5)
cond <- c(1,5,1,1,1,5,1,1)
df1<-data.frame(cbind(t,id,cond))
id <-c(1,4)
cond <-c(1,1)
df2<- data.frame(cbind(id, cond))
预期输出:
t<- c(1,7)
id<-c(1,4)
cond<- c(1,1)
df3< c(t, id, cond)
有什么想法吗?
也许我们需要
library(dplyr)
inner_join(df1, df2, by = c('id', 'cond'))
我一直在尝试根据另外两个不同大小的数据帧(df1、df2)和以下条件创建一个数据帧 (df3):
在 df3 中包含所有行,其中:df1$id = df2$id 和 df1$cond=df2$cond
我试过了:
df3<-df1[(df1$id %in% df2$id &
df1$fcond %in% df2$cond),]
但它会选择至少有一个参数为真而不是两个都为真的行。
虚拟数据:
t<- c(1,2,3,4,5,6,7,8,9,10)
id<-c(1,1,2,2,3,3,4,4,5,5)
cond <- c(1,5,1,1,1,5,1,1)
df1<-data.frame(cbind(t,id,cond))
id <-c(1,4)
cond <-c(1,1)
df2<- data.frame(cbind(id, cond))
预期输出:
t<- c(1,7)
id<-c(1,4)
cond<- c(1,1)
df3< c(t, id, cond)
有什么想法吗?
也许我们需要
library(dplyr)
inner_join(df1, df2, by = c('id', 'cond'))