获取作为data.frame因子的所有列的索引

时间:2014-04-15 09:47:29

标签: r

有没有很好的方法直接获取factordata.frame的所有列的索引?

到目前为止,我仍然坚持:

sapply(df, is.factor)

2 个答案:

答案 0 :(得分:0)

这是一种方法:

data(mtcars)
df <- mtcars
df$vs <- as.factor(df$vs)
df$gear <- as.factor(df$gear)
str(df)

vsgear现在属于factor类。 现在将变量名输入sapplyx现在迭代每个列名并使用指定的函数,例如。 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))