使用Microsoft R的“ remoteScript”执行R脚本时,如何将所有内容从控制台保存到文本文件?

时间:2018-11-12 21:12:59

标签: r console microsoft-r r-server

我很好奇,是否可以找到一种方法,当使用命令{{1从Microsoft R客户端向Microsoft R服务器远程提交和执行R脚本时,将所有内容从R控制台保存到文本文件}}或remoteScript()

例如,考虑一个简单的R脚本 remoteExecute() ,如下所示:

'test.R'

我知道,要从控制台保存所有内容,可以在Local R会话中执行它,如下所示:

本地R会话:

set.seed(123)
x <- rnorm(100)
mean(x)

如预期的那样,日志文件 # Create a text file to save all from console logfile <- file("C:/.../MyLog1.txt") sink(logfile, append = TRUE) sink(logfile, append = TRUE, type = "message") # Execute in the local R session source("C:/.../test.R", echo = TRUE, max.deparse.length = 1000000) sink() sink(type = "message") 具有控制台中的所有内容:

'MyLog1.txt'

类似地,连接到R服务器后,可以使用> set.seed(123) > x <- rnorm(100) > mean(x) [1] 0.09040591 执行相同的脚本。

远程R会话:

remoteScript()

但是日志文件 # Connect to the server and create a remote session remoteLogin(...) # Go back to the local R session pause() # Create a text file to save all from console logfile <- file("C:/.../MyLog2.txt") sink(logfile, append = TRUE) sink(logfile, append = TRUE, type = "message") # Execute in the remote R session remoteScript("C:/.../test.R") sink() sink(type = "message") 看起来有所不同,如下所示:

'MyLog2.txt'

它只有“输出”和一些附加信息。带有[1] 0.09040591 $success [1] TRUE $errorMessage [1] "" $outputParameters list() $consoleOutput [1] "[1] 0.09040591\r\n" $changedFiles list() $backgroundUpdate [1] 0 命令提示符的代码的每一行都没有像'>'那样打印。可能是因为'MyLog1.txt'没有像echo=TRUE这样的选项。

有人可以帮助我吗?

谢谢..

0 个答案:

没有答案