R - 在数据帧列表上使用离群值函数
R - Use an outlier function on a list of dataframes
我制作了一个离群值函数,并想将其应用于数据帧列表。到目前为止没有成功。这是 lapply 的工作,还是 sapply?
# Remove outliers
outlier <- function(x) {
x[x < quantile(x,0.25) - 6 * IQR(x) | x > quantile(x,0.75) + 6 * IQR(x)] <- NA
x
}
我们可以使用 lapply
循环遍历 data.frame
的 list
,然后通过遍历列 (lapply
) 和将输出分配回去
lapply(lst1, function(x) {x[] <- lapply(x, outlier)
x })
如果列是混合类型,我们select数字列并应用函数
lapply(lst1, function(x) {i1 <- sapply(x, is.numeric)
x[i1] <- lapply(x[i1], outlier)
x
})
或使用tidyverse
library(tidyverse)
map(lst1 ~ .x %>%
mutate_if(is.numeric, outlier))
我制作了一个离群值函数,并想将其应用于数据帧列表。到目前为止没有成功。这是 lapply 的工作,还是 sapply?
# Remove outliers
outlier <- function(x) {
x[x < quantile(x,0.25) - 6 * IQR(x) | x > quantile(x,0.75) + 6 * IQR(x)] <- NA
x
}
我们可以使用 lapply
循环遍历 data.frame
的 list
,然后通过遍历列 (lapply
) 和将输出分配回去
lapply(lst1, function(x) {x[] <- lapply(x, outlier)
x })
如果列是混合类型,我们select数字列并应用函数
lapply(lst1, function(x) {i1 <- sapply(x, is.numeric)
x[i1] <- lapply(x[i1], outlier)
x
})
或使用tidyverse
library(tidyverse)
map(lst1 ~ .x %>%
mutate_if(is.numeric, outlier))