快速有效地将字符矩阵转换为数字数据框的方法?

时间:2019-12-16 15:52:24

标签: r dplyr numeric

原始数据为

df1 = structure(c(3, 5, 0, 0, 5, 8, 6, 8, 0, 0), .Dim = c(5L, 2L))

以下命令给我一个字符矩阵,我需要将其转换为数字数据框。

install.packages("rcdd")
library("rcdd")
foo = makeV(points = d2q(df1))[,-c(1,2)]

最快的方法是什么,因为它被循环使用并且需要重复多次?

1 个答案:

答案 0 :(得分:0)

我认为这不是最好的方法,但是我发布了它,至少在用作节拍参考的时候:

library("rcdd")
library(microbenchmark)

df1 = structure(c(3, 5, 0, 0, 5, 8, 6, 8, 0, 0), .Dim = c(5L, 2L))
foo = makeV(points = d2q(df1))[,-c(1,2)]

microbenchmark(
  data.frame(cbind(as.numeric(foo)[1:nrow(foo)],
                   as.numeric(foo)[-c(1:nrow(foo))]))
)

平均时间为105.77微秒