[問題] 迴圈中回歸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