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

R语言忽略NA值匹配经度对应source列最高频字符串创建新列咨询

修正方案

你的代码存在两个需要调整的点:

  1. 没有提前过滤source列的缺失值:你的源数据中同时存在字符串类型的"NA"和R原生的NA缺失值,需要先将这两类值排除后再统计频次
  2. 排序逻辑错误:你使用升序order(N)取第一个值,实际要取出现次数最多的取值,需要用降序order(-N)

修正后代码

library(data.table)
setDT(data)
# 先过滤缺失值,再分组统计频次,降序排序后取每组第一个
dataM <- data[!is.na(source) & source != "NA", 
              .N, 
              .(longitude, source)][order(-N), 
                                    .(first = first(source)), 
                                    longitude]

输出结果验证

运行上述代码后得到的dataM和你预期的输出完全一致:

structure(list(longitude = c(20.5, 15.2, 24.9), first = c("OSM", "OSM", "SIGE")), row.names = c(NA, -3L), class = c("data.table", "data.frame"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:30:03