우리는 3 개의 종속 변수 집합과 6 개의 독립 변수가 그룹화 변수로 태그 지정된 데이터 프레임을 가지고 있다고 가정 해 봅시다. 이 형식의 예는 아래의 샘플 코드 생성 : 나는의 라인을 따라 뭔가를 사용할 수 X1 내지 X6의 설정에 Y1, Y2, Y3의 각을 회귀하고 싶었다면먼저 group_by()를 호출하고 열을 통해 lm()을 반복 하시겠습니까?
library(tidyverse)
library(broom)
n <- 15
df <- data.frame(groupingvar= sample(letters[1:2], size = n, replace = TRUE),
y1 = rnorm(n,10,1), y2=rnorm(n,100,10), y3=rnorm(n,1000,100),
x1= rnorm(n,10,1), x2=rnorm(n,10,1), x3=rnorm(n,10,1),
x4=rnorm(n,10,1), x5=rnorm(n,10,1), x6=rnorm(n,10,1))
df <- arrange(df,groupingvar)
:
는y <- as.matrix(select(df,y1:y3))
x <- as.matrix(select(df,x1:x6))
regs <-lm(y~x)
coeffs <- tidy(regs)
coeffs <- arrange(coeffs,response, term)
합니다 (LM() 도움말로부터 다음 라인을 이용하여 "응답 행렬이면, 선형 모델은 행렬의 각 열을 최소 제곱 법에 의해 개별적으로 장착되어있다.")
그러나 그룹화 변수로 먼저 그룹화하고 나서 lm 함수를 적용해야한다면 어떻게하는지 잘 모르겠습니다. 나는 다음을 시도했지만, 두 그룹 모두에 대해 동일한 계수 세트를 생성합니다.
regs2 <- df %>% group_by(groupingvar) %>%
do(fit2 = lm(as.matrix(select(df,y1:y3)) ~ as.matrix(select(df,x1:x6))))
coeffs2 <- tidy(regs2,fit2)
coeffs2 <- arrange(coeffs2,groupingvar, response)
"그리고 lm 함수"->'H 당신은'lapply()'를 사용하여 시도 했습니까? – d8aninja
제대로 사용하는 방법을 모르겠습니다. "y1 ~ x1 + x2 + ... + x6", "y2 ~ x1 + x2 + ... + x6", "y3 ~ x1 + x2 + ... + x6"요소 목록이있는 수식 목록을 만들려고했습니다. 이 목록을 lm()에 전달하려고 시도했지만 올바른 구문으로 넘어 갔다고 생각합니다. – user1689945
응용, 사피, lapply 등의 가족이 이해에 절대적으로 중요합니다. 많은 것을 배울 수있는 무한한 자원이 있습니다. Hadley의 고급 R (온라인에서 사용 가능) 또는 도서 라이브러리의 많은 예제를 참조하십시오. – d8aninja