rbind 列表中的所有给定列
rbind all given columns within a list
我正在将数量可变的 .csv 文件(全部包含在当前工作目录中)读取到一个列表中,并希望对每个 .csv 文件的第二列进行 rbind。
工作目录中的文件如下所示:
150601_0001.csv
150601_0002.csv
150601_0003.csv
etc.
我有以下代码可以将它们全部读入目录中任意给定数量的文件的列表中:
(代码来自here)
myfiles <- dir(pattern = "\.(csv|CSV)$", full.names = TRUE) # get filenames and paths
myfiles_data <- lapply(myfiles, data.table::fread) # read data from files, quickly
head(myfiles_data[[1]]) # validate file reading
names(myfiles_data) <- myfiles # assign names to list items
到目前为止一切正常,我将所有数据放入一个漂亮的列表中:
> myfiles_data
$`./150601_0001.csv`
X Y Z
1: 1 67.81 1
2: 2 68.52 1
3: 3 69.66 1
---
250: 250 50.02 1
251: 251 50.58 1
252: 252 51.16 1
$`./150601_0002.csv`
X Y Z
1: 1 70.77 2
2: 2 70.54 2
3: 3 70.47 2
---
250: 250 51.00 2
251: 251 51.17 2
252: 252 51.43 2
$`./150601_0003.csv`
X Y Z
1: 1 68.32 3
2: 2 67.80 3
3: 3 67.33 3
---
250: 250 50.58 3
251: 251 50.68 3
252: 252 50.77 3
现在我想对每个数据集的第二列进行 rbind。下面的代码给了我一个只有第二列的列表(出于视觉目的缩写了数据):
> lapply(myfiles_data, `[[`, 2)
$`./150601_0001.csv`
[1] 67.81 68.52 69.66 ...
...
[241] ... 52.85 51.85 50.90
$`./150601_0002.csv`
[1] 70.77 70.54 70.47 ...
...
[241] ... 51.00 51.17 51.43
$`./150601_0003.csv`
[1] 68.32 67.80 67.33 ...
...
[241] ... 50.58 50.68 50.77
如何一次性将 rbind() 应用于所有这些?
没有添加评论的声誉所以添加答案
尝试将所有数据绑定到一个数据帧中
Output<-do.call(rbind, list)
怎么样
unlist(lapply(myfiles_data, `[[`, 2))
我正在将数量可变的 .csv 文件(全部包含在当前工作目录中)读取到一个列表中,并希望对每个 .csv 文件的第二列进行 rbind。
工作目录中的文件如下所示:
150601_0001.csv
150601_0002.csv
150601_0003.csv
etc.
我有以下代码可以将它们全部读入目录中任意给定数量的文件的列表中: (代码来自here)
myfiles <- dir(pattern = "\.(csv|CSV)$", full.names = TRUE) # get filenames and paths
myfiles_data <- lapply(myfiles, data.table::fread) # read data from files, quickly
head(myfiles_data[[1]]) # validate file reading
names(myfiles_data) <- myfiles # assign names to list items
到目前为止一切正常,我将所有数据放入一个漂亮的列表中:
> myfiles_data
$`./150601_0001.csv`
X Y Z
1: 1 67.81 1
2: 2 68.52 1
3: 3 69.66 1
---
250: 250 50.02 1
251: 251 50.58 1
252: 252 51.16 1
$`./150601_0002.csv`
X Y Z
1: 1 70.77 2
2: 2 70.54 2
3: 3 70.47 2
---
250: 250 51.00 2
251: 251 51.17 2
252: 252 51.43 2
$`./150601_0003.csv`
X Y Z
1: 1 68.32 3
2: 2 67.80 3
3: 3 67.33 3
---
250: 250 50.58 3
251: 251 50.68 3
252: 252 50.77 3
现在我想对每个数据集的第二列进行 rbind。下面的代码给了我一个只有第二列的列表(出于视觉目的缩写了数据):
> lapply(myfiles_data, `[[`, 2)
$`./150601_0001.csv`
[1] 67.81 68.52 69.66 ...
...
[241] ... 52.85 51.85 50.90
$`./150601_0002.csv`
[1] 70.77 70.54 70.47 ...
...
[241] ... 51.00 51.17 51.43
$`./150601_0003.csv`
[1] 68.32 67.80 67.33 ...
...
[241] ... 50.58 50.68 50.77
如何一次性将 rbind() 应用于所有这些?
没有添加评论的声誉所以添加答案
尝试将所有数据绑定到一个数据帧中
Output<-do.call(rbind, list)
怎么样
unlist(lapply(myfiles_data, `[[`, 2))