繁体   English   中英

使用多个条件的 r 数据帧中的分隔因子和字符列

[英]separating factor and character columns in r data frame using multiple condition

我只想分隔数据框的两种类型的列(因子和字符),以下代码会导致错误。 我想知道执行此任务的正确方法是什么。

install.packages("dslabs")
library(dslabs)
data(murders)

names(murders)[sapply(murders, (is.factor | is.character))]

我可以使用下面的代码将两者结合起来,但我想知道如果我想使用多个条件作为上面的代码,正确的格式是什么。

c(names(murders)[sapply(murders, is.factor)],names(murders)[sapply(murders, is.character)])

我们可能需要 lambda function

names(murders)[sapply(murders, function(x) 
      is.factor(x) | is.character(x))]

或者另一种选择是获取class并使用%in%

names(murders)[sapply(murders, class) %in% c("factor", "character")]

或带Filter

names(Filter(function(x) is.factor(x)|is.character(x), murders))

或使用tidyverse

library(dplyr)
murders %>%
    select(where(~ is.factor(.x)|is.character(.x))) %>%
    names

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM