变量的单独值作为列标题用于不相等的观察

时间:2018-09-16 06:24:33

标签: r dataframe

我在通过“文件名”列的值来操作数据时遇到了麻烦。

代码和数据的设置如下所示,其中我导入了多个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行观察值……所以我期望最终的输出是

  1. df1 = FSC.PAR(行值)与文件名(30列)
  2. df2 = SSC(行值)与文件名(30列)
  3. df3 =叶绿素(行值)与文件名(30列)

我遇到的问题是,我研究过的许多方法要么将数据汇总到一些统计信息中(我需要原始值),要么需要其他变量来分隔文件名的值,要么不知道如何处理文件名之间的不平等观察。

非常感谢您的帮助!

0 个答案:

没有答案