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

R语言按日期合并不同长度数据集时Klasse列返回NA如何解决

原因定位
  • d2当前为矩阵结构,并非merge函数要求的data.frame类型,你提供的d2输出带[1,]行索引标识可证明这一点,矩阵的列属性不满足merge的关联要求,导致匹配全部失败返回NA。
  • 两个数据集的Datum字段类型不统一,比如d1中Datum为Date格式,d2中Datum为字符串格式,或字符串存在隐藏的首尾空格,导致关联时无法匹配到相同值。
  • d2未正确设置列名,转换为数据框后默认列名不是Datum和Klasse,导致关联键不存在。
修复代码

首先将d2转为标准数据框并统一字段类型:

# 转换矩阵为数据框,指定列名
d2 <- as.data.frame(d2, stringsAsFactors = FALSE)
colnames(d2) <- c("Datum", "Klasse")

# 去除Datum字段可能存在的隐藏空格
d1$Datum <- trimws(as.character(d1$Datum))
d2$Datum <- trimws(as.character(d2$Datum))

# 统一转为Date类型避免格式误差
d1$Datum <- as.Date(d1$Datum)
d2$Datum <- as.Date(d2$Datum)

# 执行合并
result <- merge(d1, d2, by = "Datum", all.x = TRUE)

执行后result的Klasse列就会正确填充对应日期的等级值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:27:02