出于内存原因,我不想将apply函数的输出保存到文件中,但我想在apply循环运行时将结果写入文件。
我做了以下工作示例:
checkfun <- function(TheArray, fileConn){
write(as.character(TheArray[1]), fileConn)
}
set.seed(1)
random_data <- matrix(nrow=10, ncol=10, data=runif(100))
outfile <- file("checkout.txt")
apply(random_data, 2, checkfun, fileConn=outfile)
close(outfile)
读取文件checkout.txt
只会包含0.239629415096715
矩阵最后一列的值(random_data
)。而我希望它在checkout.txt
文件中保存该矩阵的完整第一行。
请注意,这是我面临的问题的一个示例,在矩阵中保存行很容易,我想写入apply函数内的文件。
我做错了吗?
可以肯定的是,我原来的apply循环中的函数需要相对较长的时间来完成,所以我不认为写入文件会产生太多的开销,即使它会在函数中产生相当大的开销这里。
感谢。
答案 0 :(得分:1)
更改代码的1行以打开文件以便以文本模式写入:
outfile <- file("checkout.txt", "w")