我可以使用table()
和levels()
或name()
按照here解释,在表格中获得最常见的因素级别或名称,但我怎样才能获得因素本身?
> a <- ordered (c("a", "b", "c", "b", "c", "b", "a", "c", "c"))
> tt <- table(a)
> m = names(which.max(tt)) # what do I put here?
> is.factor(m)
[1] FALSE # I want this to be TRUE and for m to be identical a[3]
当然,这只是一个例子。我真正想要做的是对因素的大量操纵和聚合,我只想保持所有变量的因子一致。我不希望他们更改级别或订单或丢弃级别,因为没有数据。
答案 0 :(得分:3)
目前还不清楚你到底想要什么。如果您想要一个长度为4且与a
具有相同级别的因子向量:
m = a[ a %in% names(which.max(tt)) ]
对于一个长度为一的向量,请执行与上面相同的操作,然后选择第一个向量:
m = a[ a %in% names(which.max(tt)) ][1]
m
#--------
[1] c
Levels: a < b < c
> m == a[3]
[1] TRUE
如果你想要一个相同长度的矢量,那么:
m <- a
is.na(m) <- ! m %in% names(which.max(tt))