从R中具有常量非缺失值的数据集中删除列
考虑以下数据框:从R中具有常量非缺失值的数据集中删除列,r,constants,missing-data,R,Constants,Missing Data,考虑以下数据框: data <- data.frame(a=c("Yes","Yes",NA),b=c(2,4,3),c=c(NA,3,3),d=c("B","B","B")) a b c d 1 Yes 2 NA B 2 Yes 4 3 B 3 <NA> 3 3 B 将sapply与is.na()和any()一起使用: 将sapply与is.na()和any()一起使用: 试一试 试一试 是否需要确定哪些列满足此条件?删除它们很简单。我尝试了:data
data <- data.frame(a=c("Yes","Yes",NA),b=c(2,4,3),c=c(NA,3,3),d=c("B","B","B"))
a b c d
1 Yes 2 NA B
2 Yes 4 3 B
3 <NA> 3 3 B
将sapply与is.na()和any()一起使用:
将sapply与is.na()和any()一起使用:
试一试
试一试
是否需要确定哪些列满足此条件?删除它们很简单。我尝试了:data[sapply(data,function(x)length(unique(x))>1)],但没有删除列a和列c您需要确定哪些列满足此条件吗?删除它们很简单。我尝试过:data[sapply(data,function(x)length(unique(x))>1)],但没有删除列a和列c我不想删除缺少数据的列…我的主要目标是删除具有相同值的列,如果某个列有一些缺失,其余的值也一样,我想删除这些列。考虑我不想删除列的数据有缺失的数据…我的主要目的是删除具有相同值的列,如果某个列有一些缺失,其余的值是相同的,我也想删除这些列。
b
1 2
2 4
3 3
> data[sapply(data, function(data) !any(is.na(data)))]
b
1 2
2 4
3 3
data[sapply(data, function(x) length(unique(na.omit(x)))) > 1]
# b
# 1 2
# 2 4
# 3 3