【发布时间】:2026-02-02 15:10:02
【问题描述】:
我有一个非常大的数据框 280,000 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))))
【问题讨论】:
标签: r purrr map-function