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

在R语言中如何将列表与DataFrame按名称关联合并?

按名称将列表与DataFrame关联合并的方法

这里有几种简洁的实现方式,都能满足你的需求:

方法一:Base R 极简实现

直接利用match函数匹配名称位置,提取列表对应值:

df$value_l <- unlist(l)[match(df$group, names(l))]

运行后df会直接新增value_l列,匹配不到的自动填充NA。

方法二:Base R 数据框合并法

先把列表转换为带名称的DataFrame,再通过左连接合并:

# 将列表转为结构化数据框
list_df <- data.frame(
  group = names(l),
  value_l = unlist(l),
  stringsAsFactors = FALSE
)
# 左连接保留原DataFrame的所有行
result_df <- merge(df, list_df, by = "group", all.x = TRUE)

方法三:tidyverse 风格实现

如果习惯使用dplyr和purrr工具链,可以这样写:

library(dplyr)
library(purrr)

result_df <- df %>%
  mutate(value_l = map_dbl(group, ~ l[[.x]] %||% NA_real_))

或者先转列表为tibble再做左连接:

library(dplyr)

list_tbl <- tibble(
  group = names(l),
  value_l = unlist(l)
)

result_df <- df %>% left_join(list_tbl, by = "group")

以上方法最终都会生成你预期的输出:

group value value_l
1     A     1     999
2     B     2      55
3     C     3      NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:16:09