我有向量A
,B
和C
这些属于类的角色。我希望它们是数字的,而不是写这么多次:
A <- as.numeric(A)
我更愿意写一个将它们全部转换成的表达式。我怎么能这样做?
答案 0 :(得分:3)
显而易见的方法是将它们放入列表并*apply
转换:
result = sapply(list(A, B, C), as.numeric, simplify = FALSE)
但是再次解压缩结果会变得混乱:
A = result$A
# … etc.
但如果您只是需要临时访问对象,则可以使用result
作为自己的类环境对象:
local({
do_something_with(A)
and_also(B, C)
}, result)
或者,以下代码也可以使用,但它有点狡猾(列表 副作用的应用程序总是如此,并且分配到父作用域中是双倍的:)
invisible(list2env(lapply(mget(c('A', 'B', 'C')), as.numeric), environment())
我建议不要这样做。