R语言中合并数据框后summarise返回异常结果的问题
问题原因
summarise()是dplyr包的函数,它的核心逻辑是必须明确指定要计算的汇总统计规则。直接传入数据框却不声明具体要汇总什么(比如均值、求和、计数等),函数没有可执行的计算指令,所以返回空的0列1行数据框。- 虽然
View(df1)能看到数据,但summarise()不会自动对所有列执行默认汇总操作,必须手动定义计算规则。
解决办法
1. 明确指定汇总操作
针对所有数值列计算统计量(比如均值):
library(dplyr) # 对所有数值列计算均值,忽略缺失值 df_summary <- df1 %>% summarise(across(where(is.numeric), mean, na.rm = TRUE))
如果只需要对特定列计算:
# 计算某列(比如col2)的总和 df_summary <- df1 %>% summarise(col2_total = sum(col2, na.rm = TRUE))
2. 分组汇总(如果需要按日期分组)
先通过group_by()指定分组列,再执行汇总:
df_summary <- df1 %>% group_by(data) %>% # 按日期列data分组 summarise(across(where(is.numeric), sum, na.rm = TRUE))
3. 确认dplyr包已正确加载
如果没加载dplyr就调用summarise(),可能会触发其他包(比如plyr)的同名函数,导致异常。先执行library(dplyr)再重试。
内容的提问来源于stack exchange,提问作者Диана
相关产品推荐
相关产品推荐

