[问题] 循环中回归output的变量名称不想用循环变量

楼主: REIDO (NEET)   2017-06-27 08:41:44
[软件熟悉度]:
请把以下不需要的部份删除
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
for(j in c(3,15,30)){
temp=summary(lm(d1[,31]~d1[,j]))
print(temp)
}
执行后的结果节录如下:
Call:
lm(formula = d1[, 31] ~ d1[, j])
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.4379 0.1714 66.716 < 2e-16 ***
d1[, j] -1.5832 0.2105 -7.521 3.73e-13 ***
就是这样,因为它显示"j",变成好几笔oputput的变量都一样。我希望至少直接显示j代表的数字,请问要如何做?
或是更进阶一点的,请问有办法显示成原本在names(d1)[j]里面的名称吗?(d1是我的data)
作者: x88776544pc (龙飞五丈原)   2017-06-27 10:07:00
rownames(temp$coef) <- c("Inter.",names(d1)[j])也可以在lm里面加参数data=d1,formula里面直接用名称
楼主: REIDO (NEET)   2017-06-27 18:54:00
formula里面有困难,因为我用数字指定循环比较方便,用list会落落长。rowname那个成功了,感恩!题外话,$coef和$coefficients有什么不同啊?
作者: andrew43 (讨厌有好心推文后删文者)   2017-06-27 19:41:00
没有不同喔。
楼主: REIDO (NEET)   2017-06-27 22:05:00
那位什么R要分两个标签啊?
作者: celestialgod (天)   2017-06-27 22:07:00
并非两种标签,$coef他会去match这个开头的如果找不到会回传NULL,两个一样开头也会NULL可以参考 match.arg这个函数的范例基本上$的做法就是用match.arg的想法去实践

Links booklink

Contact Us: admin [ a t ] ucptt.com