我在通过“文件名”列的值来操作数据时遇到了麻烦。
代码和数据的设置如下所示,其中我导入了多个csv文件的每个样本(文件名)对应的三个变量,并将其组合到一个数据框中。
setwd("C:/Users/raiss/Desktop/COAST/Picoeukaryotes")
read.delim(file = "filename", header=T)
raw <- list.files(pattern = "*.csv")
myfiles <- lapply(raw, read.delim)
rawdf <- data.table::rbindlist(myfiles)
read_plus <- function(flnm) {
read.csv(flnm) %>%
mutate(filename = flnm)
}
rawtbl <- list.files(pattern = "*.csv",
full.names = T) %>% map_df(~read_plus(.))
head(rawtbl, n = 10)
FSC.PAR SSC X692_40..488.....Red..chlorophyll. filename
1 835 412 702 ./CIN2017_v0420170914CTD#30_1000m_300sec_Picoeukaryotes.csv
2 609 362 991 ./CIN2017_v0420170914CTD#30_1000m_Picoeukaryotes.csv
3 549 199 901 ./CIN2017_v0420170914CTD#30_1000m_Picoeukaryotes.csv
4 573 187 770 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
5 655 203 796 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
6 543 139 712 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
7 406 111 631 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
8 674 265 789 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
9 417 71 626 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
10 532 219 713 ./CIN2017_v0420170914CTD#30_100m_Picoeukaryotes.csv
我正在尝试建立3个数据帧,其中列对应于文件名(不同的样本),行包含对某些变量的观察。我确实考虑过要手动完成,但是我有30个文件名级别和22804行观察值……所以我期望最终的输出是
我遇到的问题是,我研究过的许多方法要么将数据汇总到一些统计信息中(我需要原始值),要么需要其他变量来分隔文件名的值,要么不知道如何处理文件名之间的不平等观察。
非常感谢您的帮助!