·cut():切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码。https://blog.csdn.net/yyykkklll123/article/details/83277194

> j1<-c(23,62,72,80,59,82,90,43,94)
> break1<-fivenum(j1)
> labels = c("差", "中", "良", "优")
> j2<-cut(j1,break1,labels)
> j2
[1] <NA> 中   中   良   差   良   优   差   优
Levels: 差 中 良 优
> j2<-cut(j1,break1,labels,ordered_result=T)
> j2
[1] <NA> 中   中   良   差   良   优   差   优
Levels: 差 < 中 < 良 < 优

·可以发现,cut(数据, fivenum(数据))的分组结果为

(min,lower-hinge]、(lower-hinge,median]、(median,higher-hinge]、(higher-hinge,max]

而最小值却不包括在其中,也就是缺少了左边的≤min(数据)的部分,但右边不受影响。为了将分组左侧扩展到0,可改进为:

cut( 数据,  c(-1, breaks=fivenum(数据)[-1])  )

此时左边的区间为(-1,lower-hinge],成功囊括了最小值.


·table() 函数统计因子各水平的出现次数(称为频数或频率)。也可以对一般的向量统计每个不同元素的出现次数。对一个变量用 table 函数计数的结果是一个特殊的有元素名的向量,元素名是自变量的不同取值,结果的元素值是对应的频数。单个因子或单个向量的频数结果可以用向量的下标访问方法取出单个频数或若干个频数的子集。https://www.cnblogs.com/jiaxinwei/p/12343120.html

> sex = c("女","女","女","男","男"); table(sex)
sex
男 女 2  3
> aim = table(sex)[table(sex)==max(table(sex))] # 还能用table求众数
> aim
女 3
> max(table(sex)) # 就是求table中的最大频数
[1] 3
> table(sex)==max(table(sex)) # 发现“女”出现最多
sex男    女
FALSE  TRUE 

·在掌握了cut和table的基本用法后,终于可以看懂https://blog.csdn.net/yyykkklll123/article/details/83277194了,建立数据如下:

library(reshape2)
w<-cut(ChickWeight[,1], # 对第一列的水平进行划分breaks=c(-1,fivenum(ChickWeight[,1])[-1]), # 区间划分为(-1,lower-hinge],(lower-hinge,median],...,(high-hinge,max]labels=c('瘦弱','中等','强壮','肥胖'), # 四个区间分别对应的标签order_result=TRUE) # 这些标签是从小到大排序的
t<-cut(ChickWeight[,2],breaks=c(-1,fivenum(ChickWeight[,2])[-1]),labels=c('年幼','青葱','成熟','垂暮'),order_result=TRUE) # 同上,划分区间,且左侧区间囊括最小值#体重与年龄的关系
data<-data.frame('体重'=w,'年龄'=t) # 构建数据框,观察体重与年龄的关系
Hmisc::describe(data) # 对于该数据框,describe函数观测效果优于summary
plot(data)
plot(data.frame('年龄'=t,'体重'=w)) # 直方图观测更直观table_data<-table(data) # 统计频数
print(table_data) # 变量间的关系一目了然
print(table(data.frame('年龄'=t,'体重'=w)))
summary(table_data) # 独立性检验结果表明:p-value = 1.541e-164,各因子显著独立
plot(table_data) # 与plot(data)直方图类似
plot(table(data.frame('年龄'=t,'体重'=w)))melt_data<-melt(data=table_data,variable.names=c('体重','年龄'),Value.name='频数') # 使用reshape2包中的melt函数将因子和频数转换为列表的形式
str(melt_data) # 16 obs. of  3 variables
plot(melt_data$年龄,melt_data$value) # 箱线图反映不同因子的频数分布
plot(melt_data$体重,melt_data$value)#体重、年龄与饲料的关系
data1<-data.frame('体重'=w,'年龄'=t,'饲料'=ChickWeight$Diet)
Hmisc::describe(data1)
plot(data1) # 看不清饲料与体重的关系
plot(data1$饲料,data1$体重) # 非常清晰地看出1-4号饲料对体重的影响差异!table_data1<-table(data1)
print(table_data1)
print(table(data.frame('年龄'=t,'体重'=w,'饲料'=ChickWeight$Diet)))
summary(table_data1) # 独立性检验结果表明:p-value = 3.099e-151,各因子显著独立
plot(table_data1) # 该直方图反映了分类变量饲料的影响
plot(table(data.frame('年龄'=t,'体重'=w,'饲料'=ChickWeight$Diet)))melt_data1<-melt(data=table_data1,id='饲料',variable.names=c('体重','年龄'),Value.name='频数')
str(melt_data) # 64 obs. of  4 variables,对因子按分类变量“饲料”进行区分,16×4=64种
plot(melt_data1$年龄,melt_data1$value) # 因子的频数分布出现了离群点,表明饲料对“年龄与体重的关系”产生影响

结论1:这个数据适合做ANOVA方差分析

结论2:饲料种类对“年龄与体重的关系”产生影响

结论3:年龄、体重、饲料种类三个因子独立性显著

结论4:你们说,得到这个结果,后面我该干啥呢?


代码中图片和结果就不放上去了,对每一步进行了解释,参考文献如下:

https://blog.csdn.net/mr_muli/article/details/79616374

https://www.cnblogs.com/jiaxinwei/p/12343120.html

https://www.cnblogs.com/jiaxinwei/p/12343120.html

R语言melt、table、cut函数应用及解释相关推荐

  1. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象

    R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 目录 R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 #data.t ...

  2. R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate)

    R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate) 目录 R语言data.table导入数据实战:data.table使用by函数进行数据分组( ...

  3. R语言使用table函数计算单分类变量的频率表(frequency table)、使用prop.table函数将table函数计算获得的频率表转化为比率表、返回单分类变量每一个类别的比率、或者百分比

    R语言使用table函数计算单分类变量的频率表(frequency table).使用prop.table函数将table函数计算获得的频率表转化为比率表.返回单分类变量每一个类别的比率.或者百分比. ...

  4. R语言使用table函数统计dataframe数据中的离散变量(分类变量、因子变量)数据列的每一种水平的统计计数

    R语言使用table函数统计dataframe数据中的离散变量(分类变量.因子变量)数据列的每一种水平的统计计数 目录

  5. R语言使用table函数和xtabs函数计算获取二维列联表(TWO-WAY TABLES)的语法、使用xtabs函数计算获取二维列联表(TWO-WAY TABLES)

    R语言使用table函数和xtabs函数计算获取二维列联表(TWO-WAY TABLES)的语法.使用xtabs函数计算获取二维列联表(TWO-WAY TABLES) 目录

  6. R语言 变量的操作函数

    R语言 变量的操作函数 1.变量变换 as.array(x),as.data.frame(x),as.numeric(x),as.logical(x),as.complex(x),as.charact ...

  7. R语言使用download.file函数下载网络文件到本地(Download File from the Internet)

    R语言使用download.file函数下载网络文件到本地(Download File from the Internet) 目录 R语言使用download.file函数下载网络文件到本地(Down ...

  8. R语言data.table导入数据实战:把data.frame数据转化为data.table数据

    R语言data.table导入数据实战:把data.frame数据转化为data.table数据 目录 R语言data.table导入数据实战:把data.frame数据转化为data.table数据 ...

  9. R语言stringr包str_dup函数字符串多次复制实战

    R语言stringr包str_dup函数字符串多次复制实战 目录 R语言stringr包str_dup函数字符串多次复制实战 #导入stringr包 #仿真数据

  10. R语言stringr包str_count函数计算字符串匹配个数实战

    R语言stringr包str_count函数计算字符串匹配个数实战 目录 R语言stringr包str_count函数计算字符串匹配个数实战 #导入stringr包 #仿真数据

最新文章

  1. python apktool_Python使用ApkTool和子进程反编译APK
  2. 3D Detection 论文汇总
  3. 【Open Search产品评测】-- 淘点点:基于OpenSearch,轻松实现一整套O2O类
  4. MySQLFabric概述
  5. SQL SERVER 2008的元数据视图
  6. ServletContext的作用
  7. String s = new String(xyz);创建了几个对象?
  8. Git和Github代码管理实践
  9. 98.set_include_path()
  10. golang学习之远程木马demo编写
  11. 基于IPS7LnkNet.Advanced的S7Watch 西门子PLC调试工具
  12. 大会回顾丨游戏用户体验优化如何实践,看大咖怎么说(附PPT下载)
  13. Cubase10.5稳定版安装包+安装教程
  14. office timeline 5|office timeline pro/plus 5(PPT时间轴制作插件) v5.00.00.00
  15. 查询毕业证书的(学信网查)
  16. python用while做九九乘法表_Python 语法控制(含用while和for实现九九乘法表)
  17. 看到一个蛮有意思的简繁体转换
  18. WINCC软件与西门子PLC以太网通讯
  19. Microsoft Teams安装教程
  20. 如何对电脑屏幕进行监控?

热门文章

  1. zemax 学习笔记
  2. 15个最好的免费开源电子商务平台
  3. API接口:item_search - 按关键字搜索商品
  4. Linux之convert命令的使用
  5. 计算机二级c语言题库pdf,历年全国计算机二级C语言题库.pdf
  6. 偶像Stallman
  7. Vuforia的学习(一)---Vuforia的介绍
  8. R语言 一元正态分布参数最大似然估计
  9. 小论文投稿经历与经验
  10. 纪委正调查计算机学院院长,网曝湖北文理学院招办领导受贿 学院纪委:正在调查...