找回密码
 立即注册
查看: 3036|回复: 4

如何利用subset函数对不同行数的数据框取交集

[复制链接]
发表于 2017-4-29 17:09:27 | 显示全部楼层 |阅读模式
本帖最后由 flying_cattle 于 2017-4-29 17:10 编辑

df1=data.frame(name=c("aa","bb"),age=c(20,29),sex=c("f","m"))
df2=data.frame(name=c("dd","bb","cc"),
age=c(40,35,36),sex=c("f","m","f"),type=c("aaas","wewe","www"))
df1$name=as.vector(df1$name)     ##这步不可少,试了好几次,原数据框name列为因子,需要转换为字符向量才可以
data=subset(df2,name==df1$name)

长的对象长度不是短的对象长度的整倍数如何解决 谢谢


回复

使用道具 举报

发表于 2017-5-2 23:55:46 | 显示全部楼层
加几行辅助行,辅助行设置为空值
回复

使用道具 举报

 楼主| 发表于 2017-5-19 14:44:00 | 显示全部楼层
我的一头小毛驴 发表于 2017-5-2 23:55
加几行辅助行,辅助行设置为空值

确实可行,还有什么别的好的办法么
回复

使用道具 举报

发表于 2017-5-22 10:51:38 | 显示全部楼层
flying_cattle 发表于 2017-5-19 14:44
确实可行,还有什么别的好的办法么

写一个for  循环。将短的数据框的行数改为1,就不用担心是不是整数倍了
回复

使用道具 举报

发表于 2017-5-22 10:52:14 | 显示全部楼层
再将  最终的结果合并起来
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 06:47 , Processed in 0.019374 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表