如何将表值分配给R中的原始数据?

时间:2016-11-01 14:35:11

标签: r frequency

我和R一起工作时很安静,对任何愚蠢的问题都很抱歉。

通常我必须处理非常大的数据集。 我希望每次观察都有观察次数,而不会使原始数据集变小。 我的问题有一个非常小的例子:

Observations<-c("A1","A2","B1","B3","B3","C1","C1","C1","C1","C2","C3","C3","C3")

用表格得到:

> table(Obsevations)
Observations
A1 A2 B1 B3 C1 C2 C3 
 1  1  1  2  4  1  3 

但我真正想要的是:

A1 A2 B1 B3 B3 C1 C1 C1 C1 C2 C3 C3 C3
 1  1  1  2  2  4  4  4  4  1  3  3  3 

在没有任何循环的大数据集中是否有一种优雅而快速的方法可以做到这一点? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

我们需要rep

tbl <- table(Observations)
rep(tbl, tbl)
#  A1 A2 B1 B3 B3 C1 C1 C1 C1 C2 C3 C3 C3 
#  1  1  1  2  2  4  4  4  4  1  3  3  3 

根据示例,另一个选项是ave

ave(seq_along(Observations), Observations, FUN = length)