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

R语言有没有可以合并数据框列、去除NA值的命令?

R语言合并分散列提取非NA值解决方案

你需要的是将每行对应类型列的唯一非NA值合并为新列,最终得到三列规整数据,可通过以下两种方法实现:

方法1:tidyverse 简洁实现

依赖dplyr包的coalesce()函数,该函数会按顺序返回每行第一个非NA值,完美适配你的场景:

# 未安装包可先运行 install.packages("tidyverse")
library(tidyverse)

# 数据处理
final_df <- employ.data %>%
  mutate(
    salary = coalesce(a, b, c),
    entry_date = coalesce(d, e, f)
  ) %>%
  select(employee, salary, entry_date)

方法2:基础R实现(无需额外安装包)

通过apply逐行提取非NA值即可:

# 提取薪资列
salary <- apply(employ.data[, c("a","b","c")], 1, function(row) row[!is.na(row)])
# 提取日期列
entry_date <- as.Date(apply(employ.data[, c("d","e","f")], 1, function(row) row[!is.na(row)]))
# 生成结果数据框
final_df <- data.frame(employee = employ.data$employee, salary = salary, entry_date = entry_date)

两种方案运行后输出的final_df和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:36:03