全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3820 10
2008-04-03

 n1<-9802
 n2<-3821


for(i in 1:n1){
+ for(j in 1:n2){
+ if((sh1$HHID==sh2$HHID[j]) & (sh1$LINE==sh2$LINE[j]))  sh3<-cbind(sh1[i,],sh2[j,])
+ j<-j+1}
+ i<-i+1}

我有两个数据文件分别sh1和sh2,它们有两个共同的变量HHID和LINE(当然各自还有自己的变量),sh1文件中这两个变量下的数据要多些。现在我想寻找这两个文件中这两个变量下相同的数据,并且将这些相同的数据组成文件sh3。

上面是我自己写的程序。请高手帮我看下哪里有问题。

非常感谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2008-4-4 09:09:00
为什么不用SAS,SAS对这样的数据处理很方便。
二维码

扫码加我 拉你入群

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

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

2008-4-4 10:29:00

感觉SAS投入太高

产出太低

二维码

扫码加我 拉你入群

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

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

2008-4-4 10:52:00

呵呵,不会用SAS。

那楼上的能不能写个SAS程序呢?

有没有高手能不能帮我看下这个R程序啊?

二维码

扫码加我 拉你入群

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

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

2008-4-4 17:31:00

position1 <- match(sh1$HHID, sh2$HHID) & match(sh1$LINE, sh2$LINE)
position2 <- match(sh2$HHID, sh1$HHID) & match(sh2$LINE, sh1$LINE)

tmp1 <- sh1[!is.na(position1),]
tmp2 <- sh2[!is.na(position2),]

out <- rbind(tmp1, tmp2)

p.s. you use "for" loop a little bit wrongly, please refer to R manual
二维码

扫码加我 拉你入群

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

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

2008-4-4 20:01:00

谢谢楼上的!你的这种方法确实不错。不过在运行时会显示两个tmp1和tmp2数据长度不一致。

我用merge()行么??

二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

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