R中数据集的多个方差

时间:2012-09-18 11:34:45

标签: r statistics

我正在和R玩一些概念。这个问题是我之前提出的问题的延伸here

我的数据如下

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

与之前的问题一样,我想累计计算V1的每个值V2的方差。但是,我需要根据V3的值拆分数据集,并计算每个数据集的方差。我可以使用split函数执行此操作,然后使用this answer中描述的技术。有没有更好的方法来实现同样的目标。

1 个答案:

答案 0 :(得分: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)