아래 코드에 대한 도움을 주시면 감사하겠습니다. 필자는 반복 된 데이터 세트를 통해 선형 회귀 직선에 맞게 코드를 작성했습니다 (개별적으로 각 환자 ID에 따라). 내가 정말로 원하는 것은 p 값이 0.05 이상인 이름/id를 추출 할 수 있다는 것입니다.선형 회귀를위한 for 루프의 이름 지정 출력
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 (즉, A1, B10, C100 및 G100)에 주어진 ID에 따른 출력 (고해상도)를 지명하고 싶은 것이있다. 나는 names(res) <- unique(A$id)
을 추가하려고 시도했으나 이것이 정말로 내가 원하는 것을주지는 못한다. Pls은 필자가 작성 루프에 익숙하지 않았기 때문에 코드 개선을위한 제안을 환영 할 것입니다. 질문이 명확하기를 바란다. 그러나 그렇지 않다면 나는 어떤 질문이라도 대답하게되어 기쁠 것이다.
답장을 보내 주셔서 감사합니다. A $ id의 이름이 결과에 태그로 지정되었는지 어떻게 확인합니까? 참고 내 원래의 데이터를 훨씬 더 큰 그래서 수동으로 할 수 없을 것입니다. –
다음과 같이 컨테이너를 초기화하거나 사전 할당하십시오 :'ids <- unique (A $ id)'; 'res <- vector (length (ids), mode = "list")'; 'names (res) <- ids'; 그리고 루프에서'res [[i]] <- model1 (A ...'. – fabians
@ fabians, 당신의 제안은 완벽하게 작동했습니다. 내가하고 싶었던 것입니다. 정말 고마워요. 내 하루! –