簡體   English   中英

dplyr:`summarise_at()` 中的錯誤:。 `,funs` 必須是單面公式、函數或 function 名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM