【发布时间】:2011-01-04 13:39:21
【问题描述】:
我们希望将 R 脚本的命令和结果记录到文本报告文件中。进入文本文件的管道与sink() 配合良好,但不适用于 for 循环。
脚本被调用
source("myscript.r",echo=TRUE)
我们需要循环将data.frame 的所有行连续提取到一个向量中,并对每个向量进行一些基于向量的分析。
这是一个简短的例子:
#pipe output to file
sink("myfile.txt",append=TRUE,split=TRUE)
#some data
c1<-rnorm(10,mean=90,sd=10)
c2<-rnorm(10,mean=75,sd=8)
c3<-rnorm(10,mean=98,sd=12)
#data in a data.frame
cData<-data.frame(c1,c2,c3)
#print data.frame
cData
#loop over frame
for (i in 1:ncol(cData))
{
#extract vector
x<-cData[,i]
#do something with vector
n = length(x)
#... more code
#print result
print(n)
}
#close output
sink()
我用sink() 和txtStart() 进行了尝试,但是sink() 截断了命令并将结果放在循环之后,txtStart() 似乎重复了命令而不是结果。
我也查看了 brew,但我只需要一个文本文件,没有任何格式。
【问题讨论】: