Сначала я создам несколько случайных наборов данных, чтобы этот пример можно было воспроизвести. Я буду использовать функцию replicate
для генерации 20 data.frames
в списке
set.seed(60656731)
files <-
replicate(n = 20L,
{data.frame("Var1" = rnorm(1000), "Var2" = runif(1000), "Var3" = rexp(1000))},
simplify = FALSE)
Я предполагаю, что вы используете функцию Winsorize
из пакета DescTools .
library(DescTools)
Используйте lapply
, т. Е. Применить список, чтобы применить функцию Winsorize
к наборам данных. Ниже приведен новый набор data.frame
с, где Var1
наборов данных были worsorized.
files_winsorized <- lapply(files, function(x) {x$Var1 <- Winsorize(x$Var1); x})
Быстрый просмотр одного из результатов:
par(mfrow = c(2, 1))
hist(files[[1]]$Var1)
hist(files_winsorized[[1]]$Var1)
![](https://i.imgur.com/sRr6i7F.png)
summary(files[[1]]$Var1)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> -2.884652 -0.722562 -0.001219 -0.021644 0.611927 3.060625
summary(files_winsorized[[1]]$Var1)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> -1.592469 -0.722562 -0.001219 -0.021551 0.611927 1.636466
Создано в 2020-03-12 пакетом Представить (v0.3.0)