R-4.2.2中source()无法运行脚本,控制台粘贴正常的问题排查与解决
R脚本
source()失效但控制台粘贴可执行的问题排查与解决 问题背景
在R-4.2.2环境下出现异常:某R脚本无法通过source()命令运行,但将脚本内容完整粘贴到控制台却能正常执行。因无法更新RStudio,最初怀疑问题与RStudio版本有关。
测试复现
初始正常代码
以下代码无论直接在控制台运行还是通过source()调用均正常:
library(quantmod) getSymbols("TQQQ") x <- as.numeric(TQQQ$TQQQ.Close) d <- (x[2:length(x)]-x[1:(length(x)-1)])/x[1:(length(x)-1)] dl <- log(x[2:length(x)]/x[1:(length(x)-1)]) curPrice <- tail(x,1) nsims <- 10^2 endPrice <- numeric() N <- 71
问题触发
仅在上述代码末尾添加一行for (k in 1:nsims){}后,source()调用失效,但将完整脚本内容粘贴到控制台仍能正常运行。
关联警告信息
加载quantmod包时收到如下警告:
Warning message: R graphics engine version 15 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed.
基于此,最初怀疑source()问题与图形系统或Plots标签有关。
问题解决
后续排查发现,本地磁盘及云备份中的脚本文件实际为空,但RStudio编辑器中显示的脚本内容却非空。推测是Google Drive同步异常导致文件状态不一致。更新RStudio后重新打开该文件,编辑器显示为空,解释了source()执行空文件无输出的表现。
进一步验证:在默认R控制台和RStudio控制台中source()表现一致,排除R或RStudio本身问题,确认大概率是文件同步或保存异常导致。
内容的提问来源于stack exchange,提问作者jdods
相关产品推荐
相关产品推荐

