使用时,尝试使用for-循环时出错。
for(i in 1:4){print(i)} Error in check_reserved(for_var_name) : could not find function "check_reserved"
有人知道怎么解决这个问题吗?我更新了R,RStudio并重新开始了会议
会议信息:
R version 4.1.1 (2021-08-10) Platform: x86_64-apple-darwin17.0
(64-bit) Running under: macOS Big Sur 10.16
Matrix products: default
LAPACK:
/Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
attached base packages: [1] stats graphics grDevices utils datasets
methods base
loaded via a namespace (and not attached): [1] compiler_4.1.1
tools_4.1.1谢谢!
发布于 2021-10-22 14:45:26
这个错误是因为以前使用过magic::magic_for,它以某种方式被带回到环境中。该函数的明显意图(自2016年以来没有变化)是允许for循环存储修改后的函数的结果,如下所示:
library(magicfor) # Load library
magic_for(print) # Call magic_for()
for (i in 1:3) {
squared <- i ^ 2
print(squared)
}
#> The loop is magicalized with print().
#> [1] 1
#> [1] 4
#> [1] 9
magic_result_as_vector() # Get the result
#> [1] 1 4 9print函数的“魔幻化”似乎被保留下来(也许在.Rdata中),但是在会话重新启动时,magicfor包是不可用的(或者只是没有加载)。我认为如果工作流确实需要magicfor包,那么(1)确保加载它,(2)向作者提交一个bug,以便更好地适应这种情况。
没有这一点,我现在的建议是:
.Rdata文件(“已保存的会话”或类似文件);许多人认为有一个可重复的工作流并重新生成您需要副加载它们的中间/最终结构要好得多;这个建议的例外是长期运行的进程,但即使这样,我认为更好的情况是显式地保存/缓存这些值,而不是整个会话;.Rprofile和其他R启动文件以删除对magicfor的任何提及;magicfor包;还不清楚这是否是决议的一部分,尽管根本原因似乎不太可能是.Rdata文件中陈旧的引用。https://stackoverflow.com/questions/69678104
复制相似问题