2011-03-15 64 views
1

如何使用以下文件名在每個循環中保存輸出數據:「file01.txt」,「file02.txt」,.. ?
這裏是我的R代碼裏面的例子:將文本保存到多個文件中

data <- matrix(c(59, 50, 48, 62, 44, 34, 78, 59, 42, 67, 51, 45, 72, 64, 52), 
       byrow=TRUE, ncol=3) 
u <- c(33, 46, 53) 
for (i in 1:length(u)){ 
      data[data<u[i]] <- NA 
      data <- data 
      print(data) 
} 
      [,1] [,2] [,3] 
     [1,] 59 50 48 
     [2,] 62 44 34 
     [3,] 78 59 42 
     [4,] 67 51 45 
     [5,] 72 64 52 
      [,1] [,2] [,3] 
     [1,] 59 50 48 
     [2,] 62 NA NA 
     [3,] 78 59 NA 
     [4,] 67 51 NA 
     [5,] 72 64 52 
      [,1] [,2] [,3] 
     [1,] 59 NA NA 
     [2,] 62 NA NA 
     [3,] 78 59 NA 
     [4,] 67 NA NA 
     [5,] 72 64 NA 
+0

使用write.csv() – Andrie 2011-03-15 06:34:59

+2

你最好養成使用seq()和冒號操作符的習慣。例如。 seq(長度(u))而不是1:長度(u)。要明白爲什麼,請將u的長度設置爲0,並查看每個行爲的表現。例如。 ü< - c() – 2011-03-15 07:19:56

回答

5

創建具有在它的文件名的字符變量,並使用write.table()

for(i in 1:length(u)) { 
    ... 
    filename = paste("file", i, ".txt", sep="") 
    write.table(data, filename) 
} 
+5

很好的答案。如果你使用:filename = paste(「file」,sprintf(「%02d」,i),「.txt」,sep =「」),那麼你將得到「file01」,「file02」...而不是「 file1「,」file2「。 – neilfws 2011-03-15 07:08:53

相關問題