楼主: 小鱼最棒
11591 10

[问答] 怎样得到数据框的补集 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
180 点
帖子
19
精华
0
在线时间
21 小时
注册时间
2016-1-19
最后登录
2018-8-9

楼主
小鱼最棒 发表于 2016-3-20 20:38:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
a,b是两个数据框,b是a中的一些行组成的,怎样得到a-b 。b里的数据的行列名与a中保持一致。请大家帮帮忙!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据框

本帖被以下文库推荐

沙发
萧风123 发表于 2016-3-20 21:03:22
像这样
  1. d<-rnorm(100)
  2. as.data.frame(d)
  3. d1<-sample(d,30)
  4. d2<-d[d%in%d1==FALSE]#d去除d1后剩余的子集
复制代码
已有 1 人评分论坛币 热心指数 收起 理由
jiangbeilu + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

藤椅
小鱼最棒 发表于 2016-3-20 21:14:19
萧风123 发表于 2016-3-20 21:03
像这样
试了,好像不行啊
如下:my.dataset <- data.frame(site=c('A','B','A','A','B'),
season=c('Winter','Summer','Summer','Spring','Fall'),
pH = c(7.4,6.3,8.6,7.2,8.9))
my.dataset1 <- data.frame(site=c('A','A','B'),
  season=c('Winter','Spring','Fall'),
pH = c(7.4,7.2,8.9))
> d2<-my.dataset[my.dataset%in%my.dataset1==FALSE]
> d2
  site season  pH
1    A Winter 7.4
2    B Summer 6.3
3    A Summer 8.6
4    A Spring 7.2
5    B   Fall 8.9

板凳
萧风123 发表于 2016-3-20 21:14:45
  1. a<-data.frame(a1=c(1:10),a2=c(1:10))
  2. b<-data.frame(b1=(1:5),b2=c(1:5))
  3. c<-subset(a,(a$a1)!=(b$b1))
  4. c
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
求证1加1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

报纸
小鱼最棒 发表于 2016-3-20 21:22:56
萧风123 发表于 2016-3-20 21:14
没怎么看懂,a1与b1您设的是一样的,能否用我上面贴的数据集试一下?非常谢谢!

地板
萧风123 发表于 2016-3-20 21:26:17
小鱼最棒 发表于 2016-3-20 21:22
没怎么看懂,a1与b1您设的是一样的,能否用我上面贴的数据集试一下?非常谢谢!
最好的方式是给两个数据集设统一的ID字段

7
万人往LVR 在职认证  发表于 2016-3-20 21:29:00
行列名保持一致的话,a[setdiff(rownames(a),rownames(b)),]
但你给的例子中行名不一致
已有 1 人评分论坛币 热心指数 收起 理由
jiangbeilu + 10 + 2 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 2   查看全部评分

8
小鱼最棒 发表于 2016-3-20 21:47:44
万人往LVR 发表于 2016-3-20 21:29
行列名保持一致的话,a[setdiff(rownames(a),rownames(b)),]
但你给的例子中行名不一致[/back ...
你的方法是正确的,谢谢!我给的例子确实不一致,不好意思。

9
萧风123 发表于 2016-3-21 14:16:43
  1. library(sqldf)
  2. my.dataset <- data.frame(site=c('A','B','A','A','B'),
  3.                          season=c('Winter','Summer','Summer','Spring','Fall'),
  4.                          pH = c(7.4,6.3,8.6,7.2,8.9))
  5. my.dataset1 <- data.frame(site=c('A','A','B'),
  6.                           season=c('Winter','Spring','Fall'),
  7.                           pH = c(7.4,7.2,8.9))
  8. sqldf('SELECT * FROM [my.dataset] EXCEPT SELECT * FROM [my.dataset1]')
复制代码

10
小鱼最棒 发表于 2016-3-21 16:39:53
萧风123 发表于 2016-3-21 14:16
谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 12:05