簡體   English   中英

為線性回歸命名for循環的輸出

[英]Naming output of a for loop for linear regression

非常感謝您提供以下代碼的幫助。 我編寫了一個代碼,以通過重復的數據集(分別並根據每個患者的ID)擬合線性回歸線。 我真正想要的是能夠提取p值大於0.05的名稱/ id。

id <- c("A1", "A1","A1", "B10", "B10", "B10","B10", "B10", "C100", "C100", "C100", 
"G100", "G100", "G100")

weight <- rnorm(14, 70) 

height <- rnorm(14, 1.7)

A <- data.frame(id, weight, height) 


model1 <-function(weight, height){
anything<-lm(weight~height)
res<-round(summary(anything)$coefficients[, 4], 3)
res
}


model2<-function(weight,height){
res<-c()
for(i in unique(A$id)){
    res2<-model1(A[A$id == i,]$weight, A[A$id == i,]$height)
    res<-c(res,res2)
}

res
 }

現在的問題是,我想根據數據幀A中給出的ID(即A1,B10,C100和G100)來命名輸出(res)。 我嘗試添加names(res) <- unique(A$id)但這並沒有給我我真正想要的東西。 請注意,我對編寫循環的經驗不是很豐富,因此歡迎提出任何改進代碼的建議。 我希望這個問題很清楚,但如果不是這樣,我很樂意回答任何問題。

c()可以接受命名輸入。 例如,如果我想創建一個名為xy的向量,則可以這樣進行:

c(x = 1, y = 2)

在您的情況下,當您添加res2 ,您將其命名為:

res <- c(res, name = res2)

name是您要為其指定的名稱。

請注意,在循環之前預分配向量要更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM