我一直在H2O
中使用Rmarkdown
,当我想将输出保存到文本文件中时,仅保存了第一部分(页面),但是在控制台中没问题< / p>
我使用了以下代码:
fileConn<-file(".\\h2o.randomForest\\output.txt")
writeLines(capture.output(summary(rf1)), fileConn)
close(fileConn)
如何将所有输出保存到文本文件?
您可以尝试在Rmarkdown中遵循以下代码
library(h2o)
h2o.init()
# import the iris dataset:
# this dataset is used to classify the type of iris plant
# the original dataset can be found at https://archive.ics.uci.edu/ml/datasets/Iris
iris <-h2o.importFile("http://h2o-public-test-data.s3.amazonaws.com/smalldata/iris/iris_wheader.csv")
# convert response column to a factor
iris['class'] <-as.factor(iris['class'])
# set the predictor names
predictors <-colnames(iris)[-length(iris)]
# split into train and validation
iris_splits <- h2o.splitFrame(data = iris, ratios = .8, seed = 1234)
train <- iris_splits[[1]]
valid <- iris_splits[[2]]
# try using the `estimate_k` parameter:
# set k to the upper limit of classes you'd like to consider
# set standardize to False as well since the scales for each feature are very close
iris_kmeans <- h2o.kmeans(x = predictors, k = 10, estimate_k = T, standardize = F,
training_frame = train, validation_frame=valid, seed = 1234)
# print the model summary to see the number of clusters chosen
fileConn<-file("output2.txt")
writeLines(capture.output(summary(iris_kmeans)), fileConn)
close(fileConn)
哪个给出以下输出
当您knit
进行Rmarkdown时,可以,但是当run the current chunk
时,则是异常。
Windows和Ubuntu上的结果相同
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1258
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
答案 0 :(得分:0)
不确定我是否正确理解了您要达到的目标,但是如果您想要
将所有输出写入文本文件
最简单的方法是使用Rscript并从命令行重定向输出:
$args,...
或直接从R(例如,通过Rscript yourscriptfilename.R > output.txt
(或Windows上的system
):
shell
这将运行您的R脚本,而不是将输出写入控制台,而是将它们写入output.txt
编织器将system("Rscript yourscriptfilename.R > output.txt")
渲染到R Mardown文件的输出中
只需在R Markdown文件的块底部添加summary
答案 1 :(得分:0)
我实际上无法重现您的问题;也就是说,当我使用 R控制台,编织或运行当前块时,它对我来说效果很好。
我推测file
连接和/或writeLines
函数存在(晦涩)问题。因此,我建议您使用以下选项之一将输出写入文件。我还建议您在将输出发送到文件之前将其保存到变量。
选项1:,使用cat
代替writeLines
,如下所示:
fileConn<-file("output2.txt")
output <- capture.output(summary(iris_kmeans))
cat(output, file=fileConn)
close(fileConn)
选项2:如下,将cat
与sink
一起使用:
sink("output2.txt")
output <- capture.output(summary(iris_kmeans))
cat(output)
sink()
让我知道是否有帮助。