Iは、次のデータフレームを有する:入手方法。 dplyr :: doの中で正しく解釈される式で?
input.df <- dplyr::data_frame(x = rnorm(4),
y = rnorm(4),
`z 1` = rnorm(4))
Iが他の列と、各列の複数の回帰を行うと、各モデルのR二乗を抽出したいです。これは、次のコードを実行できることを意味します。
summary(lm(x ~ ., data = input.df))
summary(lm(y ~ ., data = input.df))
summary(lm(`z 1` ~ ., data = input.df))
そして、R-squaredをメモしてください。
私はこの作業を自動化し、最初の列が従属変数で、2番目の列がR-二乗である2つの列データフレームを作成します。
n <- ncol(input.df)
replicate(n, input.df, simplify = F) %>%
dplyr::bind_rows() %>%
dplyr::mutate(group = rep(names(.), each = nrow(.)/n)) %>%
dplyr::group_by(group) %>%
dplyr::do({
tgt.var <- .$group[1]
# How do I get the formula to interpret . as all variables?
lm(get(tgt.var) ~ ., data = .) %>%
broom::glance() %>%
dplyr::select(r.squared)
})
私は立ち往生午前の部分にコメントを入れている:
これは私が試したものです。次のエラーが表示されます。
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels