楼主: 黄建荣
2165 4

[有偿编程] 循环问题——R软件 [推广有奖]

  • 0关注
  • 0粉丝

已卖:157份资源

硕士生

14%

还不是VIP/贵宾

-

威望
0
论坛币
795 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
7082 点
帖子
76
精华
0
在线时间
175 小时
注册时间
2010-5-8
最后登录
2022-2-23

楼主
黄建荣 发表于 2012-12-11 14:55:34 |AI写论文
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));
>.........




最佳答案

关键词:r软件 Number wave 各位大侠 AVE number names

沙发
babybaby 发表于 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)

}

藤椅
babybaby 发表于 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 出来。
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
黄建荣 + 1 + 1 + 1 分析的有道理
ltx5151 + 20 根据规定进行奖励

总评分: 经验 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

报纸
jmpamao 发表于 2013-1-31 17:10:41
你看看 这样行不行?
#假设你的文件为 hjr
require(reshape2)
dcast(hjr,ID +number ~wave,value.var="ref")
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
黄建荣 + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 04:45