如何计算一个接一个的值出现的次数

时间:2011-02-14 17:03:55

标签: r

我是R的新手但是我需要用它来找出一个值接一个出现多少次。基本上,我有5个数字(0,1,2,3,4)以随机顺序列出38次。我需要找出值0在0之后发生了多少次,1发生在0之后,2之后发生在0 ......所以,直到我达到4发生在4.之后是否有任何命令要执行此操作?

真的很感激帮助!

2 个答案:

答案 0 :(得分:11)

创建一对数据框,然后使用table

z <- c(0, 1, 2, 3, 4, 0, 1, 2, 3, 4)
pairs <- data.frame(first = head(z, -1), second = tail(z, -1))
table(pairs)

,并提供:

     second
first 0 1 2 3 4
    0 0 2 0 0 0
    1 0 0 2 0 0
    2 0 0 0 2 0
    3 0 0 0 0 2
    4 1 0 0 0 0

或者这会提供原始pairs数据框以及Freq列数:

as.data.frame(table(pairs))

答案 1 :(得分:10)

可能这个命令可以做到:

library(plyr) # if absent, type > install.packages('plyr')
z <- sample(0:4, 38, T) # data
count(data.frame(embed(rev(z),2))) # do it