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

如何用lapply结合grep()按ID处理RawDat数据框生成新数据框

嘿,这个场景太懂了!手动重复75次grep再cbind简直是浪费时间,用lapply完全可以优雅解决,给你两种简单的实现方式:

方法一:用lapply遍历唯一ID提取数据

先拿到所有不重复的ID,再用lapply逐个提取对应的数据,最后转成数据框就行:

# 获取所有唯一ID
unique_ids <- unique(RawDat$ID)

# 遍历每个ID,提取对应的data列
data_list <- lapply(unique_ids, function(current_id) {
  # 筛选当前ID对应的data值
  RawDat$data[RawDat$ID == current_id]
})

# 把列表转成数据框,并给列命名为对应的ID
ExtRawDat <- as.data.frame(data_list)
names(ExtRawDat) <- unique_ids

方法二:用split配合as.data.frame(更简洁)

split函数可以直接按ID对data列分组,返回的列表直接转成数据框就是你要的格式:

# 一步到位:按ID拆分data,转成数据框
ExtRawDat <- as.data.frame(split(RawDat$data, RawDat$ID))

两种方法都能自动把每个ID对应的数据变成一列,不用手动重复操作。要是不同ID的行数不一样,R会自动用NA补全缺失的行,这是默认行为,要是有特殊需求可以再调整~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:27:18