有没有很好的方法直接获取factor
中data.frame
的所有列的索引?
到目前为止,我仍然坚持:
sapply(df, is.factor)
答案 0 :(得分:0)
这是一种方法:
data(mtcars)
df <- mtcars
df$vs <- as.factor(df$vs)
df$gear <- as.factor(df$gear)
str(df)
vs
和gear
现在属于factor
类。
现在将变量名输入sapply
。 x
现在迭代每个列名并使用指定的函数,例如。 is.factor(df[, x])
sapply(colnames(df), function(x) is.factor(df[, x]))
mpg cyl disp hp drat wt qsec vs am gear carb
FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
结果将是TRUE/FALSE
向量。
which(sapply(colnames(df), function(x) is.factor(df[, x])))
vs gear
8 10
为您提供指数。
答案 1 :(得分:0)
由@droopy回答(在我的问题的评论中):
which(sapply(df, is.factor))