library(tidyverse)
使用lapply函数去替代某些重复性操作的时候,难免会返回列表数据。一般而言,还得需要使用dataframe函数去转换为数据框,略显繁琐。下面我们“df”去解决这个问题:
df <- data.frame(a = 1:3, b = 2:4)
df[] <- lapply(df, function(x) { x + 1 })
df
## a b
## 1 2 3
## 2 3 4
## 3 4 5
通常都是使用lapply对数据的每一列执行同一个函数命令,下面使用lapply去实现多个函数作用于同一个数据:
my_summary <- function(x) {
funs <- c(mean, median, sd, mad, IQR)
lapply(funs, function(f) f(x, na.rm = TRUE)) %>% unlist()
}
my_summary(df$a)
## [1] 3.0000 3.0000 1.0000 1.4826 1.0000