gpt4 book ai didi

r - 删除缺失超过 x% 的列/行

转载 作者:行者123 更新时间:2023-12-03 13:22:38 25 4
gpt4 key购买 nike

我想删除超过 50% 的所有列或行 NA s 在数据框中。

这是我的解决方案:

# delete columns with more than 50% missings
miss <- c()
for(i in 1:ncol(data)) {
if(length(which(is.na(data[,i]))) > 0.5*nrow(data)) miss <- append(miss,i)
}
data2 <- data[,-miss]


# delete rows with more than 50% percent missing
miss2 <- c()
for(i in 1:nrow(data)) {
if(length(which(is.na(data[i,]))) > 0.5*ncol(data)) miss2 <- append(miss2,i)
}
data <- data[-miss,]

但我正在寻找更好/更快的解决方案。

我也很感激 dplyr解决方案

最佳答案

要删除具有一定数量 NA 的列,您可以使用colMeans(is.na(...))

## Some sample data
set.seed(0)
dat <- matrix(1:100, 10, 10)
dat[sample(1:100, 50)] <- NA
dat <- data.frame(dat)

## Remove columns with more than 50% NA
dat[, which(colMeans(!is.na(dat)) > 0.5)]

## Remove rows with more than 50% NA
dat[which(rowMeans(!is.na(dat)) > 0.5), ]

## Remove columns and rows with more than 50% NA
dat[which(rowMeans(!is.na(dat)) > 0.5), which(colMeans(!is.na(dat)) > 0.5)]

关于r - 删除缺失超过 x% 的列/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31848156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com