如何在R中找出变量是因子还是连续因子

时间:2014-01-06 05:06:45

标签: r variables

我有一堆包含一堆变量的表。我可以用什么陈述来确定这些变量是被视为一个因素还是连续的?

3 个答案:

答案 0 :(得分:10)

假设foo是您的对象的名称,它是一个数据框,

f <- sapply(foo, is.factor)

is.factor()函数应用于数据框的每个组件(列)。 is.factor()检查所提供的向量是否与R有关。

然后

which(f)

会告诉你因子列的索引。 f也包含逻辑向量,因此您可以通过

选择因子列
foo[, f]

或选择除了他们之外的所有

foo[, !f]

以下是一个例子:

> ## some dummy data
> foo <- data.frame(a = factor(1:10), b = 1:10, c = factor(letters[1:10]))
> foo
    a  b c
1   1  1 a
2   2  2 b
3   3  3 c
4   4  4 d
5   5  5 e
6   6  6 f
7   7  7 g
8   8  8 h
9   9  9 i
10 10 10 j
> ## apply is.factor
> f <- sapply(foo, is.factor)
> f
   a     b     c 
TRUE FALSE  TRUE
> ## which are factors
> which(f)
a c 
1 3
> ## select those
> foo[, f]
    a c
1   1 a
2   2 b
3   3 c
4   4 d
5   5 e
6   6 f
7   7 g
8   8 h
9   9 i
10 10 j

对数字和整数也有相同的检查,其中包括:is.numeric()is.integer(),但如果您不关心数字的类型,则只需要is.numeric():< / p>

> is.numeric(1L)
[1] TRUE

(另外is.character()is.logical(),...)

答案 1 :(得分:6)

您必须使用is.factoris.numeric

答案 2 :(得分:4)

您可以使用str(Data)

  

?str - 紧凑地显示R对象的内部结构,a   诊断功能和摘要的替代(在某种程度上,   dput)