R中事件的概率

Probability of an event in R

我有以下数据框:

我需要评估学生是“M”的概率,即。 e. P("M") 等于“M”的数量与 studenti 的数量之比。我是这样做的:

nStudenti <- length(studenti$sesso)
tabellaSesso <- table(studenti$sesso)
nMaschi <- tabellaSesso[names(tabellaSesso) == "M"]
P = nMaschi / nStudenti

这是最短的方法还是有简单的命令?

您可以使用 table() 获取绝对频率,然后使用 prop.table() 获取概率。如果您只对特定值感兴趣,例如 "M",您可以只索引该值。

# sample data
studenti <- data.frame(sesso = sample(c("M", "F", NA), 100, replace = TRUE))

# all probabilties
prop.table(table(studenti$sesso))
#> 
#>        F        M 
#> 0.530303 0.469697

# specfic probability 
prop.table(table(studenti$sesso))["M"]
#>        M 
#> 0.469697

reprex package (v2.0.1)

于 2021-10-06 创建

您可以创建一个函数

#Function
    propCond=function(VAR,MODALITY){
      PROP=sum(VAR==MODALITY,na.rm=TRUE)/sum(!is.na(VAR),na.rm=TRUE)
      return(PROP)
    }

#Result
    propCond(c("a","a","b"),"a")