[問題] 迴圈中回歸output的變數名稱不想用迴圈變數

看板R_Language作者 (NEET)時間8年前 (2017/06/27 08:41), 編輯推噓0(0011)
留言11則, 4人參與, 最新討論串1/1
[軟體熟悉度]: 請把以下不需要的部份刪除 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 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) -- 當你選了一間新餐廳,發現沒想像中的好吃的時候,你下次願意去吃另一間食安有問題的, 當作給新餐廳老闆的一點抗議嗎? 當你發現新買的飲料不好喝,你下次願意去喝化糞池的水,當作表示對飲料商的不滿嗎? 當你宿舍舍友管機歪又囉嗦,你願意搬去和強暴犯住一起,表達對原本舍友的不滿嗎? 當你發現小孩還不會講話,只會哭很煩,你會選擇把這個小孩丟到孤兒院,再生一個看會不會安靜點嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.137.77 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1498524111.A.5F2.html

06/27 10:07, , 1F
rownames(temp$coef) <- c("Inter.",names(d1)[j])
06/27 10:07, 1F

06/27 10:14, , 2F
也可以在lm裡面加參數data=d1,formula裡面直接用名稱
06/27 10:14, 2F

06/27 18:54, , 3F
formula裡面有困難,因為我用數字指定迴圈比較方便,用list
06/27 18:54, 3F

06/27 18:54, , 4F
會落落長。rowname那個成功了,感恩!
06/27 18:54, 4F

06/27 18:55, , 5F
題外話,$coef和$coefficients有甚麼不同啊?
06/27 18:55, 5F

06/27 19:41, , 6F
沒有不同喔。
06/27 19:41, 6F

06/27 22:05, , 7F
那位什麼R要分兩個標籤啊?
06/27 22:05, 7F

06/27 22:07, , 8F
並非兩種標籤,$coef他會去match這個開頭的
06/27 22:07, 8F

06/27 22:08, , 9F
如果找不到會回傳NULL,兩個一樣開頭也會NULL
06/27 22:08, 9F

06/27 22:08, , 10F
可以參考 match.arg這個函數的範例
06/27 22:08, 10F

06/27 22:08, , 11F
基本上$的做法就是用match.arg的想法去實踐
06/27 22:08, 11F
文章代碼(AID): #1PKQdFNo (R_Language)
文章代碼(AID): #1PKQdFNo (R_Language)