2011-02-14 68 views
6

我是R的新手,但我需要用它來找出一個值在另一個值之後出現的次數。基本上,我有5個數字(0,1,2,3,4)以隨機順序列出38次。我需要找出在0之後出現0值的次數,1在0之後出現的次數,2在0之後出現的次數,等等,直到4達到4之後出現在4之後。是否有任何命令可以做到這一點?如何計算一個值在另一個值之後出現的次數

真的很感謝幫助!

回答

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 
+0

這太棒了,謝謝一羣夥伴! – 2011-02-14 17:29:27

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)) 
相關問題