У меня очень большой фрейм данных 280000 x 20, и во многих строках (obs) есть только значения 1 или 0. Функция, которую я использую, требует как минимум 2 значений на операцию. Я могу выполнять итерацию с помощью цикла for, но это занимает много времени. Я хотел бы использовать одну из функций карты purrr для увеличения скорости, поскольку я буду делать это много раз. Вот как я делал это с циклом for:
library(Matrix)
M1 <- as.matrix(rsparsematrix(100, 20, .1, rand.x = runif))
x <- vector("integer")
for(i in 1:dim(M1)[1]){
l <- (length(which(M1[i,] == 0)))
x <- c(x,l)
}
ind <- which(x == 19 | x == 20)
M1 <- M1[-ind,]
Я не понял, как это сделать с помощью карты. Я предполагаю, что для этого потребуется создать еще один столбец с помощью mutate.
M1 %>% mutate(zero_count = length(map(which(. == 0))))