Как посчитать, сколько раз значение появляется после другого - PullRequest
6 голосов
/ 14 февраля 2011

Я новичок в R, но мне нужно использовать его, чтобы узнать, сколько раз встречается одно значение за другим. В основном, у меня есть 5 чисел (0,1,2,3,4), перечисленных в случайном порядке 38 раз. Мне нужно выяснить, сколько раз значение 0 встречается после 0, 1 встречается после 0, 2 после 0 ... и так далее, пока я не достигну значения 4 после 4. Есть ли какая-либо команда для этого?

Очень ценю помощь!

Ответы [ 2 ]

11 голосов
/ 14 февраля 2011

Создайте фрейм данных из пар и затем используйте 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))
10 голосов
/ 14 февраля 2011

Вероятно, эта команда сделает это:

library(plyr) # if absent, type > install.packages('plyr')
z <- sample(0:4, 38, T) # data
count(data.frame(embed(rev(z),2))) # do it
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...