楼主: 均卫许靠由
1857 5

[其他] R语言 从两个数据框取数,进行for循环匹配 [推广有奖]

  • 3关注
  • 1粉丝

等待验证会员

已卖:2份资源

讲师

7%

还不是VIP/贵宾

-

威望
0
论坛币
853 个
通用积分
0.1023
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1781 点
帖子
89
精华
0
在线时间
723 小时
注册时间
2016-12-24
最后登录
2025-3-16

楼主
均卫许靠由 发表于 2018-12-15 19:14:40 |AI写论文
100论坛币


本人现在刚刚接触R语言,现在有个问题想请教大家。现在我有两份数据,分别在两个数据框中,图一为第一份数据,图二为第二份数据,两份数据中,相同变量为year(年份)与code(地区代码),不同部分为asset与output(产出),现在我想用for循环进行匹配,匹配方式为:由于两个数据框中的相同变量为year与code,故我想将图二(数据框二)中的output按照相同的年份与地区代码匹配到图一中,并生成新的一列,列名为output。或者不用匹配,用赋值的方法也可以
附件: 你需要登录才可以下载或查看附件。没有帐号?我要注册

最佳答案

AveryOatmeal 查看完整内容

楼主你好 r文件格式上传不支持 复制粘贴试一下以下代码 看看我x和y的数据是不是大概和你的datasets一个意思 我测试成功 没有error。merge这个function是不用在意行数问题的!楼上回复的那位是正确的。 x
关键词:匹配方式

沙发
AveryOatmeal 发表于 2018-12-15 19:14:41
楼主你好 r文件格式上传不支持 复制粘贴试一下以下代码 看看我x和y的数据是不是大概和你的datasets一个意思 我测试成功 没有error。merge这个function是不用在意行数问题的!楼上回复的那位是正确的。

x <- data.frame("year" = c(1996,1996,1997,1997,1998,1998,1998), "code" = c(11,12,12,12,12,13,13), "asset" = c(11112:11118))
y <- data.frame("year" = c(1996,1996,1997,1998,1998), "code" = c(11,12,12,12,13), "output" = c(4285287,248283,23847,143871,192837))
View(x)
View(y)

#this should be what you want
x_y <- merge(x,y,by=c("year","code"))

#use the following code when some rows of x have no matching rows in y by "year" and "code"
#it will still append the non-matching rows
x_y <- merge(x,y,by=c("year","code"),all.x = TRUE)

View(x_y)

如果你还测试不行的话 可以把原dataset发给我 我来试试看
已有 1 人评分论坛币 收起 理由
giresse + 40 精彩帖子

总评分: 论坛币 + 40   查看全部评分

藤椅
spherical 发表于 2018-12-15 20:00:18
merge(dataset1, dataset2, by=c("year", "code"),all.x=TRUE),类似这样既可。

板凳
均卫许靠由 发表于 2018-12-15 20:09:45
spherical 发表于 2018-12-15 20:00
merge(dataset1, dataset2, by=c("year", "code"),all.x=TRUE),类似这样既可。
显示报错呀,rror in fix.by(by.x, x) : 'by'必需指定唯一有效的列。 我的两份数据的行数不一样,

报纸
RASON2014 发表于 2018-12-24 12:47:12
merge(dataset1, dataset2, by=c("year", "code"),all.x=TRUE)
楼上的这个代码没有问题。请楼主在执行代码时要注意去除所有符号的格式。

地板
均卫许靠由 发表于 2018-12-24 14:41:24
AveryOatmeal 发表于 2018-12-15 19:14
楼主你好 r文件格式上传不支持 复制粘贴试一下以下代码 看看我x和y的数据是不是大概和你的datasets一个意思 ...
谢谢啦

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-1 11:06