rbind列表中的所有列给出(rbind all given columns within a li

2019-10-24 01:41发布

我读可变数量的.csv档案来,都包含在当前的工作目录,进入目录,并想rbind每个.csv档案来的第2列。

在工作目录看起来像这样的文件:

150601_0001.csv
150601_0002.csv
150601_0003.csv
etc.

我有下面的代码将它们全部读入一个列表目录中的文件的任何给定数量:(代码来自这里 )

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()所有这些在一杆?

Answer 1:

不要有信誉添加评论因此增加一个答案

试试这个将所有数据rbind到一个数据帧

Output<-do.call(rbind, list)


Answer 2:

怎么样

unlist(lapply(myfiles_data, `[[`, 2))


文章来源: rbind all given columns within a list