2013-02-18 60 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