You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按各列NaN值总和降序生成带列名的数据框?

解决方法

你的代码已接近正确结果,只需调整两处细节即可得到期望的格式:

data <- data.frame(
   emp_id = c (1:6), 
   emp_name = c(515.2,NaN , NaN, 2 ,3,1),
   salary = c(623.3,NaN , NaN, NaN ,NaN,NaN),
   new_s = c(843.25,4,5,12,4,554.4)
)

# 统计各列NaN数量,将列名改为你期望的NA_values
NA_values <- data.frame(NA_values = colSums(is.na(data)))
# 按NA_values降序排序,添加drop=FALSE强制保留数据框结构
Sorted_NA <- NA_values[order(NA_values$NA_values, decreasing = TRUE), , drop = FALSE]

运行后Sorted_NA的输出完全符合你的需求:

NA_values
salary           5
emp_name         2
emp_id           0
new_s            0

关键调整说明

  • 修改列名:把原代码中的NA_value改为NA_values,匹配你期望的输出表头。
  • 添加drop=FALSE:当数据框仅含一列时,R默认会自动简化为向量,该参数可强制保留数据框结构,确保原列名(作为行名)和对应NaN计数都被完整保留。

内容的提问来源于stack exchange,提问作者edge selcuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:32:36