转换许多矢量数据类型

时间:2014-07-09 18:11:16

标签: r

我有向量ABC这些属于类的角色。我希望它们是数字的,而不是写这么多次:

A <- as.numeric(A)

我更愿意写一个将它们全部转换成的表达式。我怎么能这样做?

1 个答案:

答案 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())

我建议不要这样做。