在markdown中将输出保存到文本文件

Ima*_*man 6 r r-markdown

我一直在与H2ORmarkdown,当我想保存在一个文本文件的输出,刚才保存的第一部分(页),但是,它是在控制台确定

我使用以下代码:

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)

这给出了以下输出

控制台输出

在此输入图像描述

Rmarkown输出

在此输入图像描述

新发现

当你knit在Rmarkdown时run the current chunk,没关系,但是什么时候,它是不正常的.

更新

在Windows和Ubuntu上的结果相同

在此输入图像描述

sessionInfo:

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)

Joz*_*zef 0

不确定我是否正确理解你想要实现的目标,但如果你想要

将所有输出写入文本文件

最简单的方法是使用 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 文件中块的底部