2011-03-15 67 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

相关问题