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

PMa*_*PMa 3 variables r

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

Rei*_*son 10

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

f <- sapply(foo, is.factor)
Run Code Online (Sandbox Code Playgroud)

将该is.factor()函数应用于数据框的每个组件(列).is.factor()检查提供的向量是否是R所涉及的因素.

然后

which(f)
Run Code Online (Sandbox Code Playgroud)

会告诉你因子列的索引.f包含逻辑向量,因此您可以选择因子列via

foo[, f]
Run Code Online (Sandbox Code Playgroud)

或者选择除它们以外的所有

foo[, !f]
Run Code Online (Sandbox Code Playgroud)

这是一个例子:

> ## 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
Run Code Online (Sandbox Code Playgroud)

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

> is.numeric(1L)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

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


Ric*_*mos 6

你必须使用is.factoris.numeric.


RUs*_*ser 5

您可以使用 str(Data)

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