![](/img/trans.png)
[英]dplyr function mutate_at throws Error: expecting a one sided formula, a function, or a function name
[英]dplyr: Error in `summarise_at()`: ! `.funs` must be a one sided formula, a function, or a function name
我正在使用dplyr
package,遇到以下錯誤:
Error in `summarise_at()`:
! `.funs` must be a one sided formula, a function, or a function name.
我試圖找到每個治療組的平均值。 這是重現錯誤的示例數據集:
ex <- data.frame(treatment = c(1,2,3,1,2,3,1,2,3), percent = c(55,44,33,22,11,55,44,33,22))
這是我嘗試過的:
# Change the treatments to a factor
ex$treatment <- as.factor(ex$treatment)
ex %>%
group_by(treatment) %>%
summarise_at(vars(percent), list(name=mean))
錯誤發生在這里。 我該如何糾正?
注意:這可以使用下面的代碼輕松完成,但我必須不斷重命名列,我不想這樣做:
df <- aggregate(x = ex$percent,
by = list(ex$treatment),
FUN = mean)
_at/_all
被棄用,取而代之across
是cross
library(dplyr)
ex %>%
group_by(treatment) %>%
summarise(across(percent, list(name = ~ mean(.x))))
由於只有一列,我們甚至不需要across
ex %>%
group_by(treatment) %>%
summarise(percent_name = mean(percent), .groups = 'drop')
OP 的代碼適用於dplyr
1.0.9
ex %>%
group_by(treatment) %>%
summarise_at(vars(percent), list(name=mean))
# A tibble: 3 × 2
treatment name
<fct> <dbl>
1 1 40.3
2 2 29.3
3 3 36.7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.