根据给定的因子水平,从数据框中选择具有匹配因子水平的变量/列。

3

是否可以通过匹配某些因子水平来选择数据框中的变量,根据它们的因子水平(已使用或未使用)选择列?我可以通过按级别总结或可能按行子集,但我想知道是否可以从数据框中选择列,或者至少列出具有某些因子水平的变量/列。

library(dplyr)
height <- c(132,151,162,139,166,147,122)
    weight <- c(48,49,66,53,67,52,40)
    gender <- c("male","male","female","female","male","female","male")
    gender2 <- c("female","male","male","male","male","female","male")
    genderx <- c("xfemale","malex","malex","male","male","xfemale","xfemale")


    df <- data.frame(height,weight,gender, gender2, genderx) %>% 
      rowid_to_column(., "ID")

类似于(或不类似)

%>% select (vars(levels ==(c("male", "female")))
1个回答

4
我们可以使用select_if
library(dplyr)
df %>% 
    select_if(~ is.factor(.) && all(c("male", "female") %in% levels(.)))

或者它也可以是任何

df %>% 
    select_if(~ is.factor(.) && any(c("male", "female") %in% levels(.)))

1
非常感谢 @akrun。 - 23stacks1254

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接