0

私はRでいくつかの概念をいじっています。この質問は、私が以前にここで尋ねたことの拡張です

私は以下のようなデータを持っています

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

前の質問のように、累積的V1に各値の分散を計算したいと思います。V2ただし、値に従ってデータセットを分割し、V3個々のデータセットの分散を計算する必要があります。関数を使用してこれを行い、この回答splitで説明されている手法を使用できます。同じことを達成するためのより良い方法はありますか。

4

1 に答える 1

3
# Ben Bolker's solution to your earlier question
bens.func <- function(d){
    u <- sort(unique(d$V2))
    ans <- sapply(u,function(x) {
        with(d,var(V1[V2<=x]))
    })
    names(ans) <- u
    ans
}

# Your new dataset
d <- data.frame(V1=runif(1000),V2=sample(1:10,size=1000,replace=TRUE),
                V3=sample(1:10,size=1000,replace=TRUE))

# Split and lapply takes care of the rest
lapply(split(d, d$V3), bens.func)
于 2012-09-18T12:19:06.950 に答える