【发布时间】:2021-01-11 03:24:49
【问题描述】:
我正在尝试使用mtcars 数据集来计算汇总统计信息。这是我的代码-
df <- as_tibble(mtcars)
df.sum2 <- df %>%
select(mpg, cyl, vs, am, gear, carb) %>%
mutate(across(where(is.factor), as.numeric)) %>%
summarise(across(
.cols = everything(),
.fns = list(
Min = min,
Q25 = quantile (., 0.25),
Median = median,
Q75 = quantile (., 0.75),
Max = max,
Mean = mean,
StdDev = sd,
N = n()
), na.rm = T,
.names = "{col}_{fn}"
)
)
但我收到以下错误 -
错误:
summarise()输入..1有问题。 x 不能对不存在的列进行子集化。 x 位置 65、66、69、71、76 等不存在。 i 只有 6 列。 i 输入..1是across(...)。
如果我从上面的代码中取出Q25 = quantile (.,0.25) 和Q75 = quantile (.,0.75),它工作正常。实际上,我可以使用以下代码获得预期的结果 -
df.sum <- df %>%
select(mpg, cyl, vs, am, gear, carb) %>% # select variables to summarise
summarise_each(funs(Min = min,
Q25 = quantile (., 0.25),
Median = median,
Q75 = quantile (., 0.75),
Max = max,
Mean = mean,
StdDev = sd,
N = n()))
但我想将across 函数与summarise 函数一起使用。我不想使用summarise_each 函数。
【问题讨论】: