我很想知道,当使用命令remoteScript()
或remoteExecute()
.
例如,考虑一个简单的 R 脚本'test.R'
,如下所示:
set.seed(123)
x <- rnorm(100)
mean(x)
我知道,要从控制台保存所有内容,可以在 Local R 会话中执行,如下所示:
本地 R 会话:
# 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'
正如预期的那样,日志文件包含控制台中的所有内容:
> set.seed(123)
> x <- rnorm(100)
> mean(x)
[1] 0.09040591
remoteScript()
同样,连接到 R 服务器后可以执行相同的脚本。
远程 R 会话:
# 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
for 的选项remoteScript()
。
任何人都可以帮我解决任何问题吗?
谢谢..