R语言计算学生为'M'的事件概率有没有更简洁的实现方式
你原来的代码逻辑正确,但并非最短实现,R中可以大幅简化操作:
最简洁的实现仅需一行代码:
P <- mean(studenti$sesso == "M")
原理说明:studenti$sesso == "M"会生成和sesso列长度一致的逻辑向量,性别为M的位置返回TRUE,其余返回FALSE。R中逻辑值参与数值计算时会自动类型转换:TRUE对应数值1,FALSE对应数值0,mean()函数的计算逻辑为「向量元素总和/向量长度」,刚好对应性别为M的人数除以总人数的概率计算规则。如果你希望沿用频数统计的思路,也可以用
prop.table()简化为一行:P <- prop.table(table(studenti$sesso))["M"]prop.table()可以直接将table()生成的频数表转换为频率表,直接提取M对应的频率值即可。
内容的提问来源于stack exchange,提问作者Gennaro Arguzzi
相关产品推荐
相关产品推荐

