R语言:表格的条形图转化

Python026

R语言:表格的条形图转化,第1张

接着上一篇文章 R语言:表格的线图转化 继续练习,这次是直方图。

前段时间在视频课程学习过直方图案例,有一个citysales表格,表示3种产品,在5个城市的销量。

运用的是“barplot”命令,程序如下:

citysales<-read.csv("citysales.csv")

x<-barplot(as.matrix(citysales[,2:4]),beside=TRUE,

legend.text=citysales$City,args.legend=list(bty="n",horiz=TRUE),

col=brewer.pal(5,"Set1"),border="black",ylim=c(0,100))

自己用来练习的表格,还是上次那个。

因为这次想用案例中的色库,所以安装了“RColorBrewer”包。

然后按照案例中语句,写了一下。颜色参数有一点改动。

barplot(as.matrix(mydata[,2:3]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

噫,为什么2006一列,2016一列?看回案例,barplot命令是根据列分组的,所以这里也根据了两个年份分组。

这样的图形不是我想要的,所以用 t命令 把mydata的行列互相置换了一下。

b<-as.matrix(mydata[,2:3]) c<-t(b)

barplot(c,las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

这次出现的图形就对了,但是x轴的图标不对。区域名消失了。

很奇怪的是,如果整个mydata置换,就会把整个matrix都变成字符,barplot就不能只打印其中的两列,必须置换成数值

图形跟上图一样,就是没有x轴的数字了。

如果索性在excel表里手动置换行和列,也是可以的。

barplot(as.matrix(mydata2[,2:16]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"),ylim=c(0,95000))

如果去掉“beside=TRUE”语句,则形成层叠图。再加上增长幅度曲线rate。但是因为增长幅度数值相对于几万的房价比较小,所以乘以5000倍才能看得见。

lines(mydata$rate*5000,col="gold")

这里又出现了一个缺点,涨幅曲线和柱状图差了一个,当然在excel表是完全对应的。还没有找出原因。望各位大神指教。

这次的练习:

1.条形图的转化

2.两种图形的叠加

3.RColorBrew包及相关命令

不明白/没做出来的地方

1.用barplot打印matrix的格式

2.matrix怎么加表头

3.Line和条形图的对应

数据准备

t检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n <30),总体标准差σ未知的正态分布。t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。

t检验的适用条件为样本分布符合正态分布。

R中检验正态分布的函数:

shapiro.test()

结果p值要是小于0.05,样本分布是非正态分布,如果大于0.05,样本分布是正态分布。

t检验可分为单总体检验和双总体检验,以及配对样本检验。

单总体t检验是检验一个样本平均数与一个已知的总体平均数的差异是否显著。

个人理解的应用实例:已知一个玉米品种的产量是8000 kg/ha,在一个田间试验中测定这个玉米品种的产量,单样本t检验要做的就是检验田间试验测定的产量与已知产量是否相等。

单样本t检验的假设:

H0:样本均值与已知的总体均值相等。

H1:样本均值与已知的总体均值不相等。

t统计量的计算:

m:样本平均值;

:已知总体的均值;

S:样本标准差,自由度df=n-1。

n:样本量。

单样本t检验R调用函数:

t.test(x, mu, alternative = "two.sided")

x:数据向量;

mu:理论平均值。默认为0,可根据自己统计计算需求更改;

alternative:备择假设。允许值为“two.sided”(默认),也可以根据需要设置为“greater”或“less”之一。

结果解释:p值小于0.05,结论是v1的平均值与理论值1.5有显著差异。

检验两个样本平均数与其各自所代表的总体的差异是否显著。

个人理解的应用实例:检验两个玉米品种产量是否存在差异。

t.test(y ~ x, data)

其中的y是一个数值型变量,x是一个二分变量。

t.test(y1, y2)

其中的y1和y2为数值型向量(即各组的结果变量)。可选参数data的取值为一个包含了这些变量的矩阵或数据框。

t检验默认假定方差不相等,并使用Welsh的修正自由度。你可以添加一个参数var.equal=TRUE以假定方差相等,并使用合并方差估计。默认的备择假设是双侧的(即均值不相等,但大小的方向不确定)。你可以添加一个参数alternative="less"或alternative="greater"来进行有方向的检验。

结果解读:得到结果中P值小于0.05,说明要拒绝原假设(两品种v1值无差异),接受备择假设,即两品种v1值差异显著。

非独立样本的t检验假定组间的差异呈正态分布。

个人理解的应用实例:一个玉米品种接受两个施氮处理,两个施氮处理下玉米的产量是否存在差异。

t.test(y1, y2, paired=TRUE)

其中的y1和y2为两个非独立组的数值向量。

结果解读:不同氮素水平的比较显示p值小于0.05,说明v1值在两个氮水平间差异显著;而两个年份下v1值无显著差异。

如果想在多于两个的组之间进行比较,应该怎么做?如果能够假设数据是从正态总体中独立抽样而得的,那么你可以使用方差分析(ANOVA)。ANOVA是一套覆盖了许多实验设计和准实验设计的综合方法。

参考资料: