I am interested in calculate the medians of a data.frame. I found two approaches to do it: 1) with tapply and 2) with aggregate.
For many reasons, I am more interested in the "aggregate approach". However, since it gives me a data.frame and I need an array, I need to transform it. I found that there is a function that tries to do this (simply2array) but it doesn't give me exactly an array.
Here is my example:
When I try to calculate the median with tapply, it gives me an array
df_median2 <- tapply(mtcars$mpg, mtcars$gear, median)
> class(df_median2)
[1] "array"
However, I need to use aggregate, which gives me a dataframe. In the following code, I tried to change it as much as I can to transform it into an array (without success)
df_median <- aggregate(mtcars$mpg ~ mtcars$gear, FUN=median)
df_median <- as.data.frame(t(df_median))
names(df_median) <- df_median[1,]
df_median <- df_median[-1,]
rownames(df_median) <- "mpg"
my_array <- simplify2array(df_median)
> class(my_array)
[1] "numeric"
So... my question is, do you know if it is possible to convert a data.frame into an array in R?
Thanks very much in advance
Regards
The simplest way is to use this:
If you want to include
colnamesyou can use thedimnames =parameter inarray()If you also want to include the
rownamesyou have to provide both thedimnames =anddim =parameter inarray()