我在for循環中生成30個子羣體的迴歸,並將它們分配給列表(矩陣?)的連續元素。似乎只有每個迴歸的第一個組成部分進入列表。簡單的版本是這樣的:R:將對象分配給循環中的向量
i <- 30
num30 <- with(gapMeans, lm(DHt[Gap==i] ~ Time[Gap==i]))
作品一樣我想要的。循環版本雲:
gmRegs <- NULL
for (i in 1:30){
gmRegs[i] <- with(gapMeans,
if(Ht[Gap==i][1] > 1){
lm(DHt[Gap==i] ~ Time[Gap==i])
} else {NULL}
)}
正確運行,但:
num30
# Call:
# lm(formula = DHt[Gap == i] ~ Time[Gap == i])
#
# Coefficients:
# (Intercept) Time[Gap == i]
# 24.56874 -0.01546
gmRegs[30]
# [[1]]
# (Intercept) Time[Gap == i]
# 24.56874082 -0.01546019
而且str()
描述num30
爲13,而gmRegs[30
列表]是清單1,當我嘗試做abline(reg=gmRegs[30])
它慣於。所以看起來我的任務似乎只是做thing1[1] <- thing2[1]
,或者是這個效果 - 我只是無法弄清楚如何正確地將lm()
這個對象放到列表槽中。
什麼樣的對象是gmRegs?如果它是一個列表,你可以用gmRegs [[1]] –
'提取元素'(gapMeans,lm(DHt [Gap == i]〜Time [Gap == i]))'' lm(DHt〜Time,data = gapMeans,subset = Gap == i)' –
@RichardTelford gmRegs start null;抱歉;忘了放那條線;編輯。關於澄清 - 我只是因爲這一切而結束了,所以這就是我所知道的。也只是編輯了我有c(與(...)),這是從另一個無果而終的嘗試。 – uhClem