簡體   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