全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3950 3
2008-08-07

我有两个数据文件sh1和sh2。

其中sh1:ID

               aa

               aa

                bb

               cc

              cc

sh2:ID          TOTAL

          aa              150

         bb               100

          cc                60

现在我想把根据sh2,将sh1变成:ID   TOTAL

                                                      aa     150

                                                      aa      150

                                                      bb       100

                                                       cc      60

                                                        cc     60

我写的语句是:n1<-length(sh1$ID);n2<-length(sh2$ID);

                   for(i in 1:n2){for(j in 1:n1) if(sh1$ID[j]==sh2$ID) sh1$TOTAL[j]<-sh2$TOTAL;j<-j+1}i<-i+1}

这个运行倒是没问题,但是效率很低。请问有没有更好的办法呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2008-8-9 09:18:00
x<-data.frame(a=c("a","b","c","c"))
y<-data.frame(a=c("a","b","c"), b=c(10,20,30))
merge(x,y)
二维码

扫码加我 拉你入群

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

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

2008-8-11 02:19:00
赞同2楼观点
二维码

扫码加我 拉你入群

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

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

2008-8-11 23:34:00

可是如果数据1中含有数据2中没有的ID号比如dd,我想把它的TOTAL赋予为0。如果用merge不能达到这个结果吧

二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群