我找不到一种简单的方法来从数据框中只选择名义(无序因子)变量的列。
我尝试使用表达式"!is.ordered“来获取没有排序的因子变量,但是抛出了一个错误。
df=mtcars
df$am=as.factor(df$am)
df$carb=as.ordered(df$carb)
df2=df[,lapply(df,(is.factor & !is.ordered))]!is.ordered中出错:参数类型无效
这也不起作用:
df=mtcars
df$am=as.factor(df$am)
df$carb=as.ordered(df$carb)
df2=df[,sapply(df, is.factor)]
ords=unlist(lapply(df2,is.ordered))
df2=df2[,-ords]
names(df2)空
发布于 2019-05-29 00:47:21
df[,sapply(df, function(x) is.factor(x) & !is.ordered(x)), drop = FALSE]
dplyr::select_if(df, ~ !is.ordered(.) & is.factor(.)) # Extended by is.factor of utubun从可读性的角度来看,我更喜欢base函数,但是有一个dplyr函数总是很好的。
发布于 2019-05-29 00:42:29
用dplyr试试吧
dplyr::select_if(df, ~ !is.ordered(.))https://stackoverflow.com/questions/56346655
复制相似问题