我一直在与H2O中Rmarkdown,当我想保存在一个文本文件的输出,刚才保存的第一部分(页),但是,它是在控制台确定
我使用以下代码:
fileConn<-file(".\\h2o.randomForest\\output.txt")
writeLines(capture.output(summary(rf1)), fileConn)
close(fileConn)
Run Code Online (Sandbox Code Playgroud)
如何将所有输出保存到文本文件?
您可以在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)
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出
当你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
Run Code Online (Sandbox Code Playgroud)
不确定我是否正确理解你想要实现的目标,但如果你想要
将所有输出写入文本文件
最简单的方法是使用 Rscript 并从命令行重定向输出:
Rscript yourscriptfilename.R > output.txt
Run Code Online (Sandbox Code Playgroud)
或者直接从 R 例如通过system(或shell在 Windows 上):
system("Rscript yourscriptfilename.R > output.txt")
Run Code Online (Sandbox Code Playgroud)
这将运行您的 R 脚本,而不是将输出写入控制台,而是将它们写入 output.txt
knitr 将其渲染summary到 R Mardown 文件的输出
只需添加summary(iris_kmeans)到 R Markdown 文件中块的底部