我正在try 创建一个描述性统计表,为数据帧的每列获取以下统计数据:平均值、标准差、第10、第50和第90分位数.然后我想调换数据集,以便列是不同的统计数据,并且每一行都是数据集中的一个变量.
这是一个示例数据集:
dt <- data.frame(id = 1:100,
Numeric_Column_1 = rnorm(100),
Numeric_Column_2 = rnorm(100),
Numeric_Column_3 = rnorm(100),
Numeric_Column_4 = rnorm(100),
Numeric_Column_5 = rnorm(100))
以及应该生成该表的代码:
desc_table <- dt %>% select(-id) %>%
dplyr::summarise_all(.funs = list(mean=mean(.,na.rm=T),
sd=sd(.,na.rm=T),
P10=~quantile(., c(0.1), na.rm=T),
P50=~quantile(., c(0.5), na.rm=T),
P90=~quantile(., c(0.9), na.rm=T)),
na.rm=TRUE) %>%
pivot_longer(cols = everything()) %>%
separate(name,c("Variable", "Stat"),sep = "_") %>%
pivot_wider(names_from = "Stat", values_from = "value") %>%
mutate(mean = round(mean, 2), sd= round(sd, 2))
然而,我得到了以下错误:
Error in is.data.frame(x): 'list' object cannot be coerced to type 'double' In addition: Warning message: In mean.default (., na.rm = T): argument is not numeric or logical: returning NA
我该如何解决这个问题?