问题描述
我正在尝试使用 R 读入并合并多个 .txt 文件。我还想根据文件名添加列。 .txt 文件是使用 licor li-840 收集的气体交换数据。每个 .txt 文件都是单个样本的时间序列。命名方案是 year.month.day.Time.Shrub.Treatment.Sample(例如 2021.6.9.T0.20.w3.15)。 .txt 文件以一行表示日期和开始时间开始。第 2 行有 8 个列名。
为清楚起见进行编辑 目标:
files <- map(.x = cfiles,~read.delim(.x,skip=1,header=TRUE))
%>% bind_rows()
%>% map2(.y= cfiles,~mutate(.x,campaign = .y))
Error in UseMethod("mutate") :
no applicable method for 'mutate' applied to an object of class "character"
.txt 文件的示例是: 文件名:2021.6.9.T0.20.w3.15
解决方法
您可以使用 purrr
和 dplyr::bind_rows
names
将是您的文件列表。
files <- map(.x = names,~read.delim(.x)) %>%
bind_rows()%>%
map2(.y= names,~mutate(.x,campaign = .y))
我以前有过这种类型的数据结构。
purrr:map()
迭代一个列表,purrr:map2()
迭代两个列表。