全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2146 4
2012-12-11
悬赏 5 个论坛币 已解决
我的数据如下图所示,数据名为hjr,在某一个wave下的ID和number是不变一致,想把不同wave下的ref提取出来放在新的数据集中范围为R325-R1075。并且将wave对应的值作为变量名保存起来。wave范围为【325-1075】。

22.png        11.png
转换成:
33.png
本人在R软件中编了些东西(附一),实现了两两的合并,但是由于wave为325-1075共750个,两两合并肯定太累了,
想求一个循环,将数据循环合并出来,请各位大侠们出出主意,谢谢啊!

附一:
> R400<-hjr[hjr$wave==400,];R401<-hjr[hjr$wave==401,];R402<-hjr[hjr$wave==402,];
> names(R400)[4]="R400";names(R401)[4]="R401";names(R402)[4]="R402";
> r1<-merge(R400,R401,by=c("ID"));
> p1<-subset(r1,select = c(ID,R400,R401))
> r2<-merge(p1,R402,by=c("ID"));
> p2<-subset(r2,select= c(ID,R400,R401,R402));
>.........




最佳答案

二维码

扫码加我 拉你入群

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

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

全部回复
2012-12-11 14:55:35

output<-NULL; output<-hjr[hjr$wave==325,c("ID","number")]
for (i in 325:1075)
{
xt<-NULL
xt<-hjr[hjr$wave==i,c("ID","number","ref")]
names(xt)[3]<-paste ("R",i,sep=“”)
output<-merge(output,xt, by=c("ID","number"),all.x=T)

}
二维码

扫码加我 拉你入群

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

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

2012-12-11 15:56:38
output<-NULL
output<-data.frame(,,)
for (i in 325:1075)
{
x<-
output$x<-
names(output)[names(output)==x]<-paste ("R",i,sep=“”)
}

没有写全,你应该能figure out 出来。
二维码

扫码加我 拉你入群

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

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

2012-12-13 21:55:41
babybaby 发表于 2012-12-11 15:56
output
大哥啊,没能figure out 出来啊,还是您帮我写写吧,我这个是内容是初学,基本上什么都不会。写的老是说有错误,也没查出来什么原因。。谢谢
二维码

扫码加我 拉你入群

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

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

2013-1-31 17:10:41
你看看 这样行不行?
#假设你的文件为 hjr
require(reshape2)
dcast(hjr,ID +number ~wave,value.var="ref")
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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