【发布时间】:2021-05-12 18:03:10
【问题描述】:
我的问题只是了解 R 语言的一个特性是如何工作的。在 R 的任何良好版本附带的“R 语言定义”中,都有一些解释,例如,向量元素的设置如何与看起来像赋值但并不那么简单的东西一起工作:
x[3:5] <- 13:15
是一个快捷方式:
`*tmp*` <- x
x <- "[<-"(`*tmp*`, 3:5, value=13:15)
rm(`*tmp*`)
我不明白的是为什么使用中间符号 *tmp* 而不是直接用 setter 函数做事情。
x <- "[<-"(x, 3:5, value=13:15)
直到现在我都怀疑它与垃圾收集有关,但由于这个在 v4 中发生了显着变化,而且文档没有改变,我现在怀疑我错了。谁能解释一下?
谢谢
【问题讨论】:
-
不要再这样做了
x <- `[<-`(x, 3:5, 13:15)肯定可以工作 -
考虑嵌套子集赋值:x[3:5][2]
-
如果使用
"代替`,可能会混淆编译器。 -
@chris。对,有点脏。我希望编译器能够将字符串强制转换为符号。但我只是复制了 help.start() 中的内容。
-
@Onyambu。抱歉,它没有帮助:我只是复制了文档中的内容。我想知道是否有不那么明显的地方。
标签: r