1

我很想知道,当使用命令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=TRUEfor 的选项remoteScript()

任何人都可以帮我解决任何问题吗?

谢谢..

4

0 回答 0