What's the prefered way to convert a data.frame into a vector?
Following code shows that the results are equal.
x <- data.frame(matrix(rnorm(30), nrow = 10))
r1 <- c(x, recursive = TRUE, use.names = FALSE)
r2 <- as.vector(as.matrix(x))
all.equal(r1, r2)
identical(r1, r2)
I'd guess c()
is the way to go since it's primitive see Chapter 2 or by calling c
.
microbenchmark::microbenchmark(
r1 = c(x, recursive = TRUE, use.names = FALSE),
r2 = as.vector(as.matrix(x)),
times = 1000L)
Unit: nanoseconds
expr min lq mean median uq max neval
r1 600 700 1053.7 1000 1200 9600 1000
r2 35900 37000 41604.6 37800 42100 132900 1000
c is 40x faster on my machine, if speed is of the essence.
1 Like
system
Closed
3
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.