r - 如何使用另一个数据框从数据框中删除行
问题描述
虽然有很多结果似乎没有人回答我下面的问题:我有两个数据框
df1 = data.frame(x= c("a1","b1","c1","d1","e1","f1"),y = c("a2","b2","c2","d2","e2","f2"), z = 1:6)
df2 = data.frame(x = c("a1", "b1"), y = c("a2", "b2"))
他们回来了:
> df1
x y z
1 a1 a2 1
2 b1 b2 2
3 c1 c2 3
4 d1 d2 4
5 e1 e2 5
6 f1 f2 6
> df2
x y
1 a1 a2
2 b1 b2
我怎样才能得到他们内部连接的剩余部分,我的意思是我想得到:
x y z
1 c1 c2 3
2 d1 d2 4
3 e1 e2 5
4 f1 f2 6
我试过了
subset(df1, (df1$x %in% df2$x) & (df1$y %in% df2$y)
)
但它不起作用也尝试了左连接,但我一直得到原始数据框 df1
解决方案
这是使用通过将第一列和第二列组合在一起然后使用该%in%
函数而构成的键的解决方案。
df1 = data.frame(x= c("a1","b1","c1","d1","e1","f1"),y = c("a2","b2","c2","d2","e2","f2"), z = 1:6)
df2 = data.frame(x = c("a1", "b1"), y = c("a2", "b2"))
#create a unique key for each dataframe
df1key<-paste(df1$x, df1$y)
df2key<-paste(df2$x, df2$y)
#return rows not matching rows in df2
answer<-df1[!(df1key %in% df2key),]
推荐阅读
- php - wordpress url 重定向挂钩 | PHP |
- java - 具有年度贡献的 Java 复利计算器
- tensorflow - 有没有办法只激活张量流中几个神经元中的一个特定神经元?
- spring - 如何在 Spring 中记录 415 错误
- python - 有没有办法在 MySql 查询后将多个值返回给 python?
- sql - Oracle 11g sql将特定值的表与其他表的所有值连接起来
- file-upload - 尝试使用 Jmeter http 将 .dat.gz 文件作为 base64 字符串上传
- r - 如何将列表转换为r中的字符串?
- email - 无法发送邮件尝试访问 null 类型值的数组偏移量
- javascript - 使用 JavaScript 从 URL 中的 Lightshot 屏幕截图图像预览