楼主: floraclub
1898 6

[问答] 如何用一个表更新另一个表 [推广有奖]

  • 0关注
  • 0粉丝

准贵宾(月)

大专生

45%

还不是VIP/贵宾

-

威望
0
论坛币
988 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
385 点
帖子
35
精华
0
在线时间
47 小时
注册时间
2016-1-15
最后登录
2017-7-14

楼主
floraclub 发表于 2016-4-20 14:29:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如我有两个表,

表1
1      2
1      a
2      o
3      o
4      b
5      a

表2
1      2
2      a
3      b


如何将表1中的“o”更新为表2中的数据?
谢谢~     


二维码

扫码加我 拉你入群

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

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

关键词:如何用 如何

沙发
行走在风口的猪 发表于 2016-4-20 14:34:06
请描述的具体一点   最好有截图

藤椅
floraclub 发表于 2016-4-20 15:11:11
表1中数据有缺失,用“o”表示,而表2中的数据刚好是缺失数据的补充,想用表2的数据更新表1中的缺失数据。数据量较大,只能批量操作。

板凳
玥落尘烟 学生认证  发表于 2016-4-20 21:01:42
  1. a<-data.frame(x1=c(1,1,2,3,4,5),x2=c(2,"a",NA,NA,"b","a"))
  2. b<-data.frame(x1=c(1,2,3),x2=c(2,"a","b"))
  3. index<-which(is.na(a[,2]))
  4. for(i in 1:length(index)){
  5.   temp_index<-which(b[,1]==a[index[i],1])
  6.   a[index[i],2]=b[temp_index,2]
  7. }
  8.   
复制代码


结果 a
x1 x2
  1  2
  1  a
  2  a
  3  b
  4  b
  5  a
已有 2 人评分论坛币 热心指数 收起 理由
李会超 + 20 精彩帖子
jiangbeilu + 10 + 2 热心帮助其他会员

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

报纸
floraclub 发表于 2016-4-22 15:36:35
玥落尘烟 发表于 2016-4-20 21:01
结果 a
x1 x2
  1  2
非常感谢!

地板
jiangbeilu 学生认证  发表于 2016-4-22 16:39:51
  1. a<-data.frame(x1=c(1,1,2,3,4,5),x2=c(2,"a",NA,NA,"b","a"))
  2. b<-data.frame(x1=c(1,2,3),x2=c(2,"a","b"))
  3. # 利用merge函数也可以实现
  4. first <- merge(a[is.na(a$x2),],b,by="x1")
  5. first$x2.x <-NULL
  6. names(first) <- names(a)
  7. rbind(a[!is.na(a$x2),],first)
复制代码

7
floraclub 发表于 2016-4-25 15:13:26
jiangbeilu 发表于 2016-4-22 16:39
谢谢!多问一句,如果a里面需要更新的不是缺失值,而是一些“旧”数据呢?如何用merge实现?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 08:04