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

多份独立数据文件预处理建模场景下如何正确使用{targets}?

使用{targets}处理多被试独立文件的解决方案

1. 定义文件路径与被试ID的映射表

首先生成包含文件路径和对应被试ID的静态表格,作为pipeline的初始目标,避免后续ID匹配混乱。

# _targets.R 初始配置
library(targets)
library(tidyverse)

list(
  # 追踪所有原始数据文件变更
  tar_target(
    data_file_paths,
    list.files(path = "你的数据文件夹路径", pattern = "\\.csv$", full.names = TRUE),
    format = "file"
  ),
  # 生成文件路径与被试ID的映射表,根据你的文件名规则调整ID提取逻辑
  tar_target(
    subject_meta,
    tibble(
      file_path = data_file_paths,
      subject_id = str_extract(file_path, "sub-\\d+")
    )
  ),

2. 按被试ID动态分支处理单文件

使用tar_map()实现按被试的分支处理,显式将subject_id带入每个分支的输入和输出,不需要依赖targets自动生成的分支名匹配ID。

# 按被试维度生成动态分支
  tar_map(
    values = subject_meta,
    names = subject_id, # 可选:用subject_id作为分支名后缀,方便后续排查
    tar_target(
      processed_subject_data,
      # 替换为你自己的单文件处理逻辑
      read_csv(file_path, show_col_types = FALSE) |>
        mutate(subject_id = subject_id) # 显式把被试ID写入处理后的数据
    )
  ),

3. 合并全量被试数据

直接合并所有分支的处理结果,每个子数据集已经自带subject_id字段,不会出现ID匹配错误。

# 合并所有被试数据用于后续建模
  tar_target(
    merged_full_data,
    bind_rows(processed_subject_data),
    format = "rds"
  )
)

额外说明

  • 可以运行tar_manifest()查看所有分支的对应关系,确认被试ID与分支的匹配是否正确。
  • 如果单文件处理逻辑复杂,可以单独封装为process_single_file(file_path, subject_id)函数,在目标内直接调用即可,代码结构会更整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:45:04