Вычисление множественной дисперсии набора данных в R

Моя проблема несколько связана с this вопрос.

У меня есть данные, как показано ниже

V1   V2
..   1
..   2
..   1
..   3

Мне нужно рассчитать дисперсию данных в V1 для каждого значения V2 кумулятивно (это означает, что для определенного значения V2, скажем, n, необходимо включить все строки V1, имеющие соответствующие V2 меньше n.

Поможет ли ddply в таком случае?


person hardikudeshi    schedule 16.09.2012    source источник


Ответы (1)


Я не думаю, что ddply поможет, так как он построен на концепции взятия непересекающихся подмножеств фрейма данных.

d <- data.frame(V1=runif(1000),V2=sample(1:10,size=1000,replace=TRUE))
u <- sort(unique(d$V2))
ans <- sapply(u,function(x) {
    with(d,var(V1[V2<=x]))
})
names(ans) <- u

Я не знаю, есть ли более эффективный способ сделать это...

person Ben Bolker    schedule 16.09.2012
comment
Спасибо, это решило проблему для меня. Я подожду когда-нибудь альтернативного ответа, иначе приму ваше решение! - person hardikudeshi; 16.09.2012
comment
Ответ Бена прост и по существу. Наверное, лучше не станет. - person Tyler Rinker; 16.09.2012
comment
Я думаю, вы могли бы сделать что-то, где вы вычислили сумму V1 и сумму V1^2 для каждой части, вычислили кумулятивные суммы и вычислили кумулятивную дисперсию, но это было бы немного сложно... - person Ben Bolker; 16.09.2012