R语言如何汇总列含NaN的dataframe,得到无缺失值的规整汇总表
问题原因
原有代码按全局行号分组,每组仅对应原数据的1行,调用sum(., na.rm=T)时,如果该行对应列的值为NA,求和结果会直接返回0,不符合需求。
实现方案
你的数据集每列的非NA值数量一致(均为3个),直接提取每列的非NA值拼接为新数据框即可:
tidyverse 实现代码
library(dplyr) result <- data %>% summarise(across(c(Data1, Data2, Data3), ~na.omit(.x)))
基础R 实现代码
result <- data.frame( Data1 = na.omit(data$Data1), Data2 = na.omit(data$Data2), Data3 = na.omit(data$Data3) )
如果你的场景中可能出现各列非NA值长度不一致的情况,可提前统计各列非NA值数量,确认长度一致后再执行拼接,避免数据对齐错误。
内容的提问来源于stack exchange,提问作者MustardRecord
相关产品推荐
相关产品推荐

