У меня есть этот df:
set.seed(20)
df <- data.frame(X1 = sample(c(1:10,NA), 10, replace=TRUE),
X2 = sample(c(1:10,NA), 10, replace=TRUE),
X3 = sample(c(1:10,NA), 10, replace=TRUE),
stringsAsFactors = FALSE)
> df
X1 X2 X3
1 10 8 6
2 9 9 1
3 4 1 5
4 6 9 1
5 NA 3 3
6 NA 5 1
7 2 4 10
8 1 2 NA
9 4 4 1
10 5 10 8
Где я могу использовать эти функции легко:
lapply(df, sum)
df %>% lapply(., sum)
df %>% lapply(., as.numeric)
Однако, если я хочу поставить na.rm=TRUE
аргумент в sum()
, это невозможно. Я искал ответ, и, кажется, единственное решение - определить сумму функции внутри lapply()
, например:
lapply(df, function() {})
Неужели невозможно поместить аргументы функции FUN внутри lapply
? Кроме того, проблема, с которой я сталкиваюсь, заключается в том, что когда я хочу применить функцию, для которой нужны данные (например, sum(data, na.rm=TRUE)
), с помощью операторов канала, я не могу передать данные функции как:
df %>% lapply(., sum(, na.rm=TRUE)) # It needs the sum argument.
df %>% lapply(., sum(., na.rm=TRUE)) # but I'm not looking to sum the whole df