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

如何提取R数据框中各列非NA值对应的人名?

提取数据框各列非NA值对应的人名

数据框定义

name <- c("luis", "John", "Leo")
a1 <- c("a","b",NA)
a2 <- c("c",NA,"d")
a3 <- c(NA,"d","e")

df <- data.frame(name, a1, a2, a3)

解决方案代码

# 若未安装stringr包,先运行 install.packages("stringr")
library(stringr)

# 遍历目标列,筛选非NA行对应的人名并格式化首字母
col_results <- lapply(df[, -1], function(col) {
  valid_names <- df$name[!is.na(col)]
  str_to_title(valid_names)
})

# 按要求格式输出结果
for (col in names(col_results)) {
  quoted_names <- paste0('"', col_results[[col]], '"', collapse = ", ")
  cat(paste0(col, ": ", quoted_names, "\n"))
}

运行结果

a1: "Luis", "John"
a2: "Luis", "Leo"
a3: "John", "Leo"

注:您提供的期望结果中a2对应的"Leon"应为笔误,原数据中对应有效行的名字是Leo,故修正为此结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:54:23