這裏是sapply
的方法。
is.na(df) <- sapply(df, function(x) (sum(x) < 10))
的想法是,sapply
循環通過變量並檢查每個的總和是否小於10,如果是,TRUE被分配給is.na
。
df
GooseIPA HeadHunter BlindPig MosaicPromise HopHunter
1 NA 10 8 6 10
2 NA 6 8 4 1
3 NA 2 3 1 0
同樣的方法,但可能與colSums
更快
is.na(df) <- (colSums(df) < 10)
數據
df <-
dput(df)
structure(list(GooseIPA = c(9L, 0L, 0L), HeadHunter = c(10L,
6L, 2L), BlindPig = c(8L, 8L, 3L), MosaicPromise = c(6L, 4L,
1L), HopHunter = c(10L, 1L, 0L)), .Names = c("GooseIPA", "HeadHunter",
"BlindPig", "MosaicPromise", "HopHunter"), class = "data.frame", row.names = c(NA,
-3L))
來源
2017-05-09 13:55:55
lmo