Question: In R I'm trying to profile the columns of a data frame. This is the data frame:

```
> library(MASS)
> data<-iris[1:5,1:4]
> data
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1          5.1         3.5          1.4         0.2
2          4.9         3.0          1.4         0.2
3          4.7         3.2          1.3         0.2
4          4.6         3.1          1.5         0.2
5          5.0         3.6          1.4         0.2

```

I want the result of the profiling to look something like this:

```
              min  max mean
Sepal.Length  4.6  5.1    5
 Sepal.Width  3.0  3.6    5
Petal.Length  1.3  1.5    3
 Petal.Width  0.2  0.2    1

```

There could be many more functions I want to apply to the columns.

I'm able to get the data I want with this command:

```
library(dplyr)
data %>% summarise_all(funs(min, max, mean))

```

However, neither the shape nor the row/column names are as desired. Is there an elegant way of achieving what I want?

Answer: 
```
library(plyr)    
t(sapply(data, each(min,max,mean)))

```
Using `dplyr` to allow use of any functions

```
library(dplyr)
library(tidyr)

data %>%
  gather() %>%
  group_by(key) %>%
  summarise_all(funs(min, max, mean))

```