2
x <- c('A', 'A', 'B', 'C', 'C', 'C')
x <- as.factor(x)
print(summary(x))
会给结果:
A B C
2 1 3
现在,如果我有一个名为向量:
nv <- c(A=2, B=1, C=3)
我怎样才能轻松地在上面的例子保留x
不关心他们的命令?
在此先感谢。
x <- c('A', 'A', 'B', 'C', 'C', 'C')
x <- as.factor(x)
print(summary(x))
会给结果:
A B C
2 1 3
现在,如果我有一个名为向量:
nv <- c(A=2, B=1, C=3)
我怎样才能轻松地在上面的例子保留x
不关心他们的命令?
在此先感谢。
以您的具体示例为例,您可以使用rep
,但请注意:这不是一般解决方案。实际上,我相信一个通用的解决方案是不可能的,因为summary
会丢弃关于原始矢量的信息。
x <- factor(c('A', 'A', 'B', 'C', 'C', 'C'))
xs <- summary(x)
rep(names(xs), times=xs)
[1] "A" "A" "B" "C" "C" "C"
的原因,这不是一般就是summary
真的只是给联表,从而失去对元素的位置信息。例如,如果我把你的载体和几个A
字符追加到尾部,看看会发生什么:
x <- factor(c('A', 'A', 'B', 'C', 'C', 'C', 'A', 'A'))
xs <- summary(x)
rep(names(xs), times=xs)
[1] "A" "A" "A" "A" "B" "C" "C" "C"
(你现在有一个排序的向量与所有正确的元素,但不正确的顺序)
谢谢Anfrie!也许我在我的文章中不清楚,但我只需要没有订单的矢量。 –
@Andrie是'unname'必需的吗? – pete
@pete不,你是对的 - 在这种情况下'unname'是多余的。回答编辑。 – Andrie