能否修改R中自动存储计算结果的.Last.value变量名(如改为..)?
能否将R的.Last.value重命名为更短的变量名(如..)?
完全可行,有两种实用方式实现:
1. 手动临时赋值
如果只是偶尔需要快速调用最新结果,直接执行赋值语句即可:
.. <- .Last.value
执行后..就会存储当前.Last.value的内容,适合临时场景。
2. 自动同步(长期使用推荐)
要是想让..自动同步每次无错误计算的结果,可以用R的任务回调函数实现自动更新,执行以下代码:
# 添加自动同步回调 addTaskCallback(function(...) { assign("..", .Last.value, envir = .GlobalEnv) return(TRUE) })
这段代码会注册一个回调,每次成功执行完代码后,自动把.Last.value的内容同步到全局环境的..变量里,全程无需手动操作。
注意事项
..是R合法的变量名,但要注意不要和你自己定义的其他变量重名,避免覆盖数据。- 如果之后不需要自动同步了,可以先记录回调的ID再移除:
# 注册时记录ID cb_id <- addTaskCallback(function(...) { assign("..", .Last.value, envir = .GlobalEnv) return(TRUE) }) # 移除回调 removeTaskCallback(cb_id)
- 和
.Last.value一样,..只会存储最后一次无错误执行的计算结果,如果某次代码报错,..会保持之前的数值,不会被更新。
内容的提问来源于stack exchange,提问作者Mike Lawrence
相关产品推荐
相关产品推荐

