文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用R语言怎么生成频数表

2023-06-14 14:13

关注

使用R语言怎么生成频数表?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

什么是R语言

R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

列联表crosstable

列联表不仅可以用来做简单的描述性统计,还可以在机器学习中用来比较识别正确率,FPR,TPR等等数据,以便我们比较不同的ML模型 or 调参。

2x2列联表一般长下面这样:

Total Observations in Table:  143               | test_cancer$diagnosis    lda.class |         0 |         1 | Row Total | -------------|-----------|-----------|-----------|           0 |        82 |        11 |        93 |              |     0.882 |     0.118 |     0.650 |              |     0.988 |     0.183 |           |              |     0.573 |     0.077 |           | -------------|-----------|-----------|-----------|           1 |         1 |        49 |        50 |              |     0.020 |     0.980 |     0.350 |              |     0.012 |     0.817 |           |              |     0.007 |     0.343 |           | -------------|-----------|-----------|-----------|Column Total |        83 |        60 |       143 |              |     0.580 |     0.420 |           | -------------|-----------|-----------|-----------|

创建列联表crosstable

推荐使用R中“gmodels”包的CrossTable()函数来做。

举例

## 使用knn模型做预测knn_pred_1 = knn(train_cancer[,2:4], test_cancer[,2:4], train_cancer$diagnosis, k=1)## 创建列联表看预测效果CrossTable(x = knn_pred_1, y = test_cancer$diagnosis, prop.chisq = FALSE)>   Cell Contents|-------------------------||                       N ||           N / Row Total ||           N / Col Total ||         N / Table Total ||-------------------------| Total Observations in Table:  143               | test_cancer$diagnosis   knn_pred_1 |         0 |         1 | Row Total | -------------|-----------|-----------|-----------|           0 |        77 |         8 |        85 |              |     0.906 |     0.094 |     0.594 |              |     0.928 |     0.133 |           |              |     0.538 |     0.056 |           | -------------|-----------|-----------|-----------|           1 |         6 |        52 |        58 |              |     0.103 |     0.897 |     0.406 |              |     0.072 |     0.867 |           |              |     0.042 |     0.364 |           | -------------|-----------|-----------|-----------|Column Total |        83 |        60 |       143 |              |     0.580 |     0.420 |           | -------------|-----------|-----------|-----------|

注意事项

在crosstable函数中,prop.chisq 这个argument默认是true,但实际上大部分使用场景不需要这个卡方概率,所以可以单独在函数中设置prop.chisq = FALSE

函数语法:

CrossTable(x, y, digits=3, max.width = 5, expected=FALSE, prop.r=TRUE, prop.c=TRUE,           prop.t=TRUE, prop.chisq=TRUE, chisq = FALSE, fisher=FALSE, mcnemar=FALSE,           resid=FALSE, sresid=FALSE, asresid=FALSE,           missing.include=FALSE,           format=c("SAS","SPSS"), dnn = NULL, ...)

参数说明:

x,y:列联表的两个特征向量

digit:指定结果小数位数

prop.r:行比例是否加入

prop.c:列比例是否加入

prop.t:表比例是否加入

prop.chisq:每个单元的卡方值是否加入

chisq:卡方检验结果是否加入

频数表

频数表给出了各个特征值出现的频数,下面使用R自带的数据集“CO2”举例

head(CO2)#得到“conc”特征的频数表table(CO2$conc)

结果:

95 175 250 350 500 675 1000

12 12 12 12 12 12 12

补充:R--生成各种列联表

看代码吧~

library(vcd)head(Arthritis) table(Arthritis$Treatment,Arthritis$Improved)with(Arthritis,table(Treatment,Improved))mytable <- xtabs(~Treatment+Improved,data = Arthritis)with(Arthritis,xtabs(~Treatment+Improved,data = Arthritis)) margin.table(mytable,2) # sum by rowprop.table(mytable,2)  #proportion by columnprop.table(mytable)  #proportion by total addmargins(mytable)addmargins(mytable,1)addmargins(prop.table(mytable,2),1)  library(gmodels)CrossTable(Arthritis$Treatment,Arthritis$Improved) ##SAS format

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯