如何删除具有相同值的列(dplyr::select)?
我有一个数据:如何删除具有相同值的列(dplyr::select)?,r,R,我有一个数据: df <- data.frame( x = c('col', NA, 1), y = c('s', NA, 3), w = c(0, 0, 0), z = c(NA_character_, NA_character_, NA_character_) ) x y w z 1 col s 0 <NA> 2 <NA> <NA> 0 <NA> 3 1 3 0 <N
df <- data.frame(
x = c('col', NA, 1),
y = c('s', NA, 3),
w = c(0, 0, 0),
z = c(NA_character_, NA_character_, NA_character_)
)
x y w z
1 col s 0 <NA>
2 <NA> <NA> 0 <NA>
3 1 3 0 <NA>
其次,我要删除z列中的所有值NA。预期结果是:
x y z
1 col s <NA>
2 <NA> <NA> <NA>
3 1 3 <NA>
x y w
1 col s 0
2 <NA> <NA> 0
3 1 3 0
错误:结果1必须是单个逻辑向量,而不是长度为3的逻辑向量
我只想使用此select,不带前缀all、at、if。如果唯一值的数量大于1,则可以使用select
library(dplyr)
df %>% select(where(~n_distinct(.) > 1))
# x y
#1 col s
#2 <NA> <NA>
#3 1 3
在唯一值的数量大于1时,可以使用“选择”
library(dplyr)
df %>% select(where(~n_distinct(.) > 1))
# x y
#1 col s
#2 <NA> <NA>
#3 1 3
我们可以在基带R中使用过滤器
我们可以在基带R中使用过滤器
如果我只想删除缺少数据的列怎么办?您可以执行df%>%selectwhere~ any!是的。或者df%>%selectwhere~!我试过了:librarydplyr librarymagrittr df%>%select.data=,其中fn=~!equals1=,e2=0以删除包含0的列。但是,不起作用。与NA值类似,您可以删除所有0为df%>%selectwhere~的列!全部0或df%>%selectwhere~任意。!=0如果您有NA值,请将其删除为df%>%selectwhere~ any.!=0,na.rm=TRUE。如果要保留所有NA值为df%>%的列,请选择where~ any.!=0,na.rm=TRUE | allis.na.如果我只想删除缺少数据的列怎么办?您可以执行df%>%selectwhere~任意操作!是的。或者df%>%selectwhere~!我试过了:librarydplyr librarymagrittr df%>%select.data=,其中fn=~!equals1=,e2=0以删除包含0的列。但是,不起作用。与NA值类似,您可以删除所有0为df%>%selectwhere~的列!全部0或df%>%selectwhere~任意。!=0如果您有NA值,请将其删除为df%>%selectwhere~ any.!=0,na.rm=TRUE。如果要保留所有NA值为df%>%的列,请选择where~ any.!=0,na.rm=TRUE | allis.na。
Filter(function(x) length(unique(x)) > 1, df)
# x y
#1 col s
#2 <NA> <NA>
#3 1 3