2013-02-18 38 views
1

我想将一些R表格写入excel文件。所以我有跟随?表格阵列

data <- list.files(path=getwd()) 
n <- length(list) 
for (i in 1:n) 
    { 
     data1 <- read.csv(data[i]) 
     outline <- data1[,2] 
     outline <- as.table(outline) 
     print(outline) # this prints all n tables 
     write.csv(outline, 'Test.csv') # this only writes the last table 
    } 

但我只获取写入csv文件的最后一个文件。不是所有的人。我将如何解决这个问题?

+2

在关于R,最好不要使用术语“阵列”,除非你正在谈论的数据通信称为'数组'的结构。由于'write.csv'希望得到一个data.frame,所以你也可以通过转换成一个真正的'矩阵'的'table'来引发一些潜在的问题。如果你期望实际制表,你不应该使用'as.table',因为它不会列表值。 – 2013-02-18 18:41:42

+0

@DWin:我正在考虑将每个矩阵存储到一个数组中,然后将数组写入一个excel文件。 – proton 2013-02-18 18:42:59

+1

我不确定在您描述完整问题之前可能会有更明智的评论。如果你正在制表值你肯定不想使用数组。 – 2013-02-18 18:47:05

回答

1

您每次写入test.csv。所以你一直在写文件。您需要更改每个步骤的文件名以保留不同的文件。

尝试:

data <- list.files(path=getwd()) 
n <- length(list) 
for (i in 1:n) 
    { 
     data1 <- read.csv(data[i]) 
     outline <- data1[,2] 
     outline <- as.table(outline) 
     print(outline) # this prints all n tables 
     name <- paste0(i,"X.csv") 
     write.csv(outline, name) 
    } 

看你的代码,或许你想这个代替:

data <- list.files(path=getwd()) 
    n <- length(list) 
    for (i in 1:n) 
     { 
      data1 <- read.csv(data[i]) 
      outline <- data1[,2] 
      outline <- as.data.frame(table(outline)) 
      print(outline) # this prints all n tables 
      name <- paste0(i,"X.csv") 
      write.csv(outline, name) 
    } 
+0

事情是我想要同一个excel文件中的所有表。不为每个Excel文件分开。因此,我不希望覆盖该文件,而是希望每个表在它出现在同一个Excel文件之前出现在表下。 – proton 2013-02-20 14:27:34