所以,假设我有两个数据集:
d1<- data.frame(seq(1:10),rnorm(10))
colnames(d1) <- c('id','x1')
d2<- data.frame(seq(3:7),rnorm(5))
colnames(d2) <- c('id','x2')
Run Code Online (Sandbox Code Playgroud)
现在,假设我想要一个新的数据集,d3即具有该d1值的数据id也存在于其中d2.我想使用一个非常简单的功能,例如:
d3 <- d1[id %in% d2$id]
Run Code Online (Sandbox Code Playgroud)
除了这是为我打印错误.什么是简单的衬垫才能实现这一目标?
我们可以用
subset(d1, id %in% d2$id)
Run Code Online (Sandbox Code Playgroud)
要么
d1[d1$id %in% d2$id,]
Run Code Online (Sandbox Code Playgroud)
不确定这是否简化,但data.table解决方案可能更有效.
library(data.table)
setDT(d1, key='id')[d2$id]
Run Code Online (Sandbox Code Playgroud)