R - 返回数据集的完整联合概率分布

时间:2013-12-12 15:07:07

标签: r dataframe probability categorical-data

我有一个带有分类变量的data.frame,如下所示:

bird.data <- data.frame( id =  rep(2,500),
                          colour = sample(c("Red", "Blue", "Yellow", "Green"), 500, replace=T, c(0.15,0.45, 0.20, 0.20)),
                          size = sample(c("Large", "Medium","Small"), 500, replace = T, c(0.33,0.33, 0.33)),
                          texture = sample(c("Hard", "Soft"), 500, replace = T, prob = c(0.55,0.45))
)

是否有一种简单的方法可以使用R返回数据集的完整联合分布P(colour,size,texture)?对于上面的数据集,这将是一个维度为with(bird.data, levels(colour) * levels(size) * levels(texture))的多维数据集。

例如,对于上面给出的数据集,我希望能够在多维数据集中存储以下所有信息:

# P(colour="Red", size="Small", texture= "Hard")
p_Red_Small_Hard <- nrow(bird.data[ bird.data$colour== "Red" & bird.data$size == "Small" & bird.data$texture =="Hard", ]) / nrow(bird.data)

0 个答案:

没有答案