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

R语言如何按ID匹配批量将nsD的counts值填入split对应列

R批量匹配ID填充数据框解决方案

基础R无依赖方案(效率最高,适配百万级数据)

  • 无需提前初始化split数据框,直接用内置unstack函数一键完成长表转目标宽表:
split <- unstack(nsD, counts ~ ID)
  • 若你已提前初始化好固定结构的split数据框,仅需填充对应ID列,用分组向量化赋值即可:
# 按ID分组提取所有counts值
counts_by_id <- split(nsD$counts, nsD$ID)
# 批量匹配列名完成赋值
split[names(counts_by_id)] <- counts_by_id
  • 若需要严格匹配你提前存储的唯一ID列表IDlist,避免多余列写入:
split[IDlist] <- lapply(IDlist, function(id) nsD$counts[nsD$ID == id])

tidyverse可读性方案

library(tidyr)
library(dplyr)

split <- nsD %>%
  # 按ID列转为宽表,同ID的counts暂存为列表格式
  pivot_wider(names_from = ID, values_from = counts, values_fn = list) %>%
  # 展开列表为多行,得到最终目标结构
  unnest(cols = all_of(IDlist))

注意:需保证每个ID对应的counts条目数完全一致,否则缺失位置会自动填充NA,与你给出的示例输出结构匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:57:05