0

我尝试过使用向量、数组、列表和集合。当我稍后访问数据时,似乎数据被转换为某个一维结构。例如。

这:

for (i in 1:length(argv)){
    temp= read.csv(file=argv[i], header= TRUE)   
    print( temp )
    input_tables[i]= temp
    print(input_tables[i])

产生这个:

     V1 V2 V3 V4
1  1  5  9 13
2  2  6 10 14
3  3  7 11 15
4  4  8 12 16
[[1]]
[1] 1 2 3 4

  V1 V2 V3 V4
1  2 10 18 26
2  4 12 20 28
3  6 14 22 30
4  8 16 24 32
[[1]]
[1] 2 4 6 8

  V1 V2 V3 V4
1  4 20 36 52
2  8 24 40 56
3 12 28 44 60
4 16 32 48 64
[[1]]
[1]  4  8 12 16

我查看了 R 的文档(一些谷歌搜索和帮助功能),但我无法确定 read.table 返回的对象类型。根据我以前的经验,我认为这是一个数据框或矩阵。

无论如何,我怎样才能将这些输出存储在某种结构中而不是转换它?或者至少不丢弃数据。它可能像现在一样在那里。谢谢你的时间。在我目前的情况下,我有一个解决方法,但似乎这应该很容易实现。

4

1 回答 1

5

read.csv 将返回一个data.frame(如?read.csv, 下所述value

组合多个文件的两种方法,假设 argv 是文件名向量,并且输入将具有相同的列数和顺序。

.list <- lapply(argv, read.csv, header = T)
all_data <- do.call(rbind, .list)

或者,使用plyr

library(plyr)
all_data <- ldply(argv, read.csv, header = T)
于 2012-05-29T01:31:12.060 回答