R Studio error: `n()` must only be used inside dplyr verbs

R Studio error: `n()` must only be used inside dplyr verbs

install.packages(c("ggplot2", "ggpubr", "tidyverse", "broom", "AICcmodavg", "dplyr"))
library(ggplot2)
library(ggpubr)
library(tidyverse)
library(broom)
library(AICcmodavg)

library(dplyr)

my_data <- read.table(file = "clipboard", 
                      sep = "\t", header=TRUE)


group_by(my_data, group) %>%
  suppressWarnings(as.numeric(co2))  
***dplyr::summarise (count = dplyr::n(), mean = dplyr::mean("CO2", na.rm = TRUE),sd = dplyr::sd("CO2", na.rm = TRUE))***

正在对我的论文中的一些数据进行单向方差分析测试,但最后一行(在 *** 上方标有 ***)不断返回以下错误代码:

错误:n() 只能在 dplyr 动词中使用。

可能出了什么问题? 感谢您提供的任何帮助!

诚然错误有点不透明,但我们可以像

一样简单地复制它
summarise(count = n())

由于您没有将前几行的结果通过管道传输到最后的 summarise(),您的 summarise() 调用实际上被视为一个独立的函数,缺少 data 参数(summarise(mtcars, count = n()) 工作正常)。

您可能正在寻找这样的管道(用 built-in 数据集 mtcars 进行说明):

library(tidyverse)
group_by(mtcars, cyl) %>%
  mutate(across(mpg, as.numeric)) %>%
  summarise(count = n(), 
            mean = mean(mpg, na.rm = TRUE),
            sd = sd(mpg, na.rm = TRUE)
           )

顺便说一句,如果您要进行方差分析,您可能不想先将数据折叠为汇总统计数据(除非有人让您手动进行计算); anova(lm(...)) 更自然,您将 lm() 应用于 non-aggregated 数据。