20492 18

[问答] R语言的一个简单FOR循环 [推广有奖]

  • 0关注
  • 1粉丝

已卖:5份资源

博士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
842 个
通用积分
0.0004
学术水平
5 点
热心指数
5 点
信用等级
6 点
经验
5905 点
帖子
149
精华
0
在线时间
532 小时
注册时间
2012-10-15
最后登录
2025-11-11

楼主
愤怒的小鸟! 发表于 2015-1-28 17:08:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我要求第二列至第九列数据分别与第一列数据之间的回归,我写的程序为
   for(i in 2:ncol(z)){
     n.i<-z[,i]
     a=lm(z[,1]~n.i,data=z)
   } #z为数据集


结果只出现最后一列与第一列之间的线性关系,请问应该怎么写,刚接触程序语言,谢谢
二维码

扫码加我 拉你入群

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

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

关键词:for循环 For R语言 NCO 程序

沙发
zlgsx 学生认证  发表于 2015-1-28 18:49:48
   for(i in 2:ncol(z)){
     n.i<-z[,i]
     i=i+1
     a=lm(z[,1]~n.i,data=z)
   }
试一下,不保证

藤椅
愤怒的小鸟! 发表于 2015-1-28 19:30:17
zlgsx 发表于 2015-1-28 18:49
for(i in 2:ncol(z)){
     n.i
谢谢,不过结果一样

板凳
呵呵哼哼哈哈 发表于 2015-1-28 20:39:47
不太清楚楼主的意思,若是为了查看每一列回归后的结果,可以调用summary(a)查看,因为你定义的是局部变量;若是要用多列做回归,就不要循环了

报纸
愤怒的小鸟! 发表于 2015-1-28 20:53:55
呵呵哼哼哈哈 发表于 2015-1-28 20:39
不太清楚楼主的意思,若是为了查看每一列回归后的结果,可以调用summary(a)查看,因为你定义的是局部变量; ...
就是第二列与第一列的回归,第三列与第一列的回归关系,....... 一直到第九列与第一列之间的回归关系

地板
呵呵哼哼哈哈 发表于 2015-1-28 20:56:35
愤怒的小鸟! 发表于 2015-1-28 20:53
就是第二列与第一列的回归,第三列与第一列的回归关系,....... 一直到第九列与第一列之间的回归关系
summary(a)查看结果,试试

7
huyiustc 发表于 2015-1-28 23:17:12
其实每次循环新结果都会覆盖之前结果,所以a只储存了最后一次结果,即z[,1]~z[,n]的回归结果
可以把a定义成list,list的每个元素储存一个回归结果即可
z=matrix(rnorm(100*10),ncol=10)  #generate data
a=list()
for(i in 2:ncol(z)){
    a[[i]]=lm(z[,1]~z[,i])
}

a #查看结果

8
huyiustc 发表于 2015-1-28 23:19:21
huyiustc 发表于 2015-1-28 23:17
其实每次循环新结果都会覆盖之前结果,所以a只储存了最后一次结果,即z[,1]~z[,n]的回归结果
可以把a定义成 ...
可以在循环里把a[]换成a[[i-1]]

9
huyiustc 发表于 2015-1-28 23:21:56

z=matrix(rnorm(100*10),ncol=10)  #generate data
a=list()
for(i in 2:ncol(z)){
    a[[i-1]]=lm(z[,1]~z[,i])
}

a #查看所有结果

summary(a[[1]])  #查看第一个回归的具体结果
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
李会超 + 40 热心帮助其他会员
愤怒的小鸟! + 1 + 1 + 1 观点有启发

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

10
愤怒的小鸟! 发表于 2015-1-29 17:48:01
huyiustc 发表于 2015-1-28 23:21
z=matrix(rnorm(100*10),ncol=10)  #generate data
a=list()
for(i in 2:ncol(z)){
谢谢,你成功的解决了我的问题,另外问一句,z[[1]]表示什么意思

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

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