[Solved] Change data.frame into array [closed]


This is a really unusual thing to do.

No, it’s worse than unusual. It’s probably just bad. Matrices and arrays are useful, appropriate and very fast if all of the data is of a single class. If you have mixed classes, then work with data frames instead.

But here you go. In the first example all of your data is converted to character, in the second to numeric.

x <- as.array(as.matrix(iris))

head(x)
     Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
[1,] "5.1"        "3.5"       "1.4"        "0.2"       "setosa"
[2,] "4.9"        "3.0"       "1.4"        "0.2"       "setosa"
[3,] "4.7"        "3.2"       "1.3"        "0.2"       "setosa"
[4,] "4.6"        "3.1"       "1.5"        "0.2"       "setosa"
[5,] "5.0"        "3.6"       "1.4"        "0.2"       "setosa"
[6,] "5.4"        "3.9"       "1.7"        "0.4"       "setosa"

Or…

x <- array(unlist(iris), dim=c(150, 5), dimnames=list(NULL, names(iris)))

head(x)
     Sepal.Length Sepal.Width Petal.Length Petal.Width Species
[1,]          5.1         3.5          1.4         0.2       1
[2,]          4.9         3.0          1.4         0.2       1
[3,]          4.7         3.2          1.3         0.2       1
[4,]          4.6         3.1          1.5         0.2       1
[5,]          5.0         3.6          1.4         0.2       1
[6,]          5.4         3.9          1.7         0.4       1

1

solved Change data.frame into array [closed]