我尝试过使用向量,数组,列表和集合。当我稍后访问数据时,似乎数据被转换为某种一维结构。例如。
此:
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返回什么类型的对象。根据我以前的经验,我认为这是一个数据框或矩阵。
在任何情况下,我如何将这些输出存储在某个结构中而不是投射它?或者至少不丢弃数据。它可能就像现在一样。谢谢你的时间。在我目前的情况下,我有一个解决方法,但似乎这很容易实现。
答案 0 :(得分: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)