2011-02-14 12 views
6

R'ye yeni oldum ama bir değerin diğerinden sonra kaç kez oluştuğunu öğrenmek için kullanmam gerekiyor. Temel olarak, 38 kez rastgele sırayla sıralanmış 5 rakam (0,1,2,3,4) var. 0 değerinin 0, 1'den sonra 0, 2'den sonra 0'dan sonra meydana geldiğini, 4'ten sonra 4'e ulaşana kadar 0'ın gerçekleştiğini bulmam gerek. Bunu yapmak için herhangi bir komut var mı?Bir değerin kaç kez daha ortaya çıktığı sayılır.

Yardımın için minnettarım!

cevap

10

muhtemelen bu komut bunu:

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

Bu çok parlak, bir grup arkadaşına teşekkürler! –

+3

da matris formunda sonuç almak için tablo (data.frame (...)) 'yapabilirsiniz. Plyr :: sayısının sıfır sayımları olan çiftleri içermeyeceğini unutmayın. –

+0

Ayrıca, sıfır sayıma ihtiyacınız varsa, sonsuz sayıda diğer kombinasyonların sayılarını içermez;) – hadley

11

çiftleri veri çerçevesini oluşturma ve ardından table kullanın:

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) 

veren:

 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 

veya bu orijinalini veren pairs veri çerçevesi ile birlikte bir Freq sütun sayısı:

as.data.frame(table(pairs)) 
İlgili konular