我有一个带有分类变量的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)