如何在R中的非因子列的长度级别

时间:2014-05-18 23:31:51

标签: r

x<- c(62, 60, 63, 59, 63, 67)
grp1<-factor(rep(1:2))
grp2<-rep(1:3)
dat <-data.frame(x,grp1,grp2)

length(levels(dat$grp1))是对的,但length(levels(dat$grp2))是错误的。

为什么?

1 个答案:

答案 0 :(得分:1)

您似乎是R的新手。 请阅读 An introduction to R

它将为您提供良好的语言开始。

x<- c(62, 60, 63, 59, 63, 67)

好的,你有一个数字向量

grp1<-factor(rep(1:2))

rep重复了它的论点,但由于你没有给出第二个论点来说明重复它的次数rep(1:2) = 1:2 = c(1, 2),所以你的rep没有做任何事情。所以现在grp1是级别为1和2的因子,值为1和2。

grp2<-rep(1:3)

您已将数字向量c(1, 2, 3)放在grp2中(此处也不需要代表)。

dat <-data.frame(x,grp1,grp2)

将它们绑定到数据帧中。

levels(dat$grp1)
[1] "1" "2"

右。

levels(dat$grp2)
NULL

这不是一个因素,所以它没有水平。如果您想计算唯一值,可以使用length(unique(dat$grp2)