繁体   English   中英

如何使用 dplyr::summarise_at() 将列名传递给 R 中的模型公式

[英]How do I pass a column name to a model formula in R using dplyr::summarise_at()

我正在尝试从 R 中的一系列模型中获取一些汇总统计信息。

例如,我可以将变量传递给公式的 LHS:

library(tidyverse)

mtcars %>%
  summarise_at(vars(cyl:hp), list(
    r = ~summary(lm(formula = . ~ mpg))$r.squared
  ))

   cyl_r    disp_r      hp_r
1 0.72618 0.7183433 0.6024373

但我似乎无法将变量传递给 RHS:

mtcars %>%
  summarise_at(vars(cyl:hp), list(
    r = ~summary(lm(formula = mpg ~ .))$r.squared
  ))

Error in terms.formula(formula, data = data) : 
  '.' in formula and no 'data' argument

有没有办法做我想做的事? 我隐约知道我可能应该使用 purr::map 或其他东西,但我在那里的实验失败了。

提前致谢。

✔ ggplot2 3.2.1 ✔ 咕噜声 0.3.3
✔ tibble 2.1.3 ✔ dplyr 0.8.3
✔ 整理 1.0.0 ✔ 整理 1.4.0
✔ 阅读器 1.3.1 ✔ forcats 0.4.0

我不太清楚第一个是如何工作的,但使用.x而不是. 似乎工作。

library(dplyr)

mtcars %>%
  summarise_at(vars(cyl:hp), list(
     r = ~summary(lm(formula = mpg ~ .x))$r.squared
  ))

#    cyl_r  disp_r    hp_r
#1 0.72618 0.71834 0.60244

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM