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

如何将原data.frame的scale列补充到缺失该列的data.frame列表LIST中

解决方案

核心逻辑是通过study、outcome、time三个公共字段,将原始数据集中的scale值匹配到列表的每个子数据框中。

基础R实现

# 生成唯一的scale匹配映射表,避免重复匹配产生冗余行
scale_mapping <- unique(data[, c("study", "outcome", "time", "scale")])

# 遍历列表的每个数据框做左连接,sort=FALSE保证原有行顺序不变
result <- lapply(LIST, function(df) {
  merge(df, scale_mapping, by = c("study", "outcome", "time"), sort = FALSE)
})

# 验证结果和预期一致
identical(result, DESIRED_LIST) # 输出为 TRUE

tidyverse 实现(依赖dplyr、purrr)

library(dplyr)
library(purrr)

result <- LIST %>% 
  map(
    .f = left_join,
    y = data %>% select(study, outcome, time, scale) %>% distinct(),
    by = c("study", "outcome", "time")
  )

# 验证结果和预期一致
identical(result, DESIRED_LIST) # 输出为 TRUE

注意:如果你的原始数据中存在同一(study,outcome,time)组合对应多个scale的情况,需要先根据业务逻辑处理重复值,否则匹配后会出现重复行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:02