在数据框中提取特定类型的列

时间:2015-03-23 15:11:54

标签: r dataframe

我有一个数据框,其中包含一堆数字和因子列。我想要所有非因素列。有没有办法提取它们? 我试过像

这样的东西
df[class(df)!="factor" ]

但没有运气。

2 个答案:

答案 0 :(得分:2)

Filter的示例:

df <- data.frame(as.factor(letters), a = runif(26), b=runif(26) )
Filter(Negate(is.factor), df)

输出:

> Filter(Negate(is.factor), df)
            a          b
1  0.04942200 0.85160817
2  0.96370499 0.77911640
3  0.66545208 0.33037229
4  0.19736620 0.54797165
5  0.15264687 0.72744035
6  0.86426399 0.88491690
...
...

答案 1 :(得分:2)

从技术上讲,数据框是一个列表,因此您可能希望将class()应用于该列表的每个元素(即每列):

df[lapply(df,class)!="factor" ]