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

如何在R语言中基于向量无字典替换表格非空白单元格

实现思路

你需要的效果可以通过按行优先顺序替换非空单元格实现,不需要构建映射字典:先提取原始表格中所有非NA/非空白的单元格位置,按行优先排序后依次填入向量G的对应元素即可。

R实现代码

第一步:构造原始数据

# 构造原始表格
df <- data.frame(
  ID = c("EL", "GN", "SF"),
  Sire = c("SF", "SF", "SF"),
  Dam = c("NA", "UJ", "NA"),
  stringsAsFactors = FALSE
)
# 定义目标替换向量
G <- c("10325", "6788" ,"1140","6788","6789" , "14140", "6788" )

第二步:按规则替换内容

# 定位所有非空单元格,按行优先排序
non_empty_pos <- which(!df %in% c(NA, ""), arr.ind = TRUE)
non_empty_pos <- non_empty_pos[order(non_empty_pos[,1], non_empty_pos[,2]), ]
# 依次替换为G的元素
df[non_empty_pos] <- G

提示:如果你的原始表格中空白值是R原生的NA类型而非字符串"NA",定位代码可以简化为non_empty_pos <- which(!is.na(df), arr.ind = TRUE)

输出验证

运行print(df)即可得到目标结果:

ID Sire  Dam
1 10325 6788   NA
2  1140 6788 6789
3 14140 6788   NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:39:01