聊聊R语言中t转置函数

Python013

聊聊R语言中t转置函数,第1张

t()

给定矩阵或数据框x,t函数返回x的转置。

矩阵里面所有内容都是相同类型数据,使用t()不会有问题。

转置后

可以看出来就是行变列,列变行了。数值型还是数值型。

再看看字符串类型的转置

转置后

可以看出来就是行变列,列变行了。字符串还是字符串。

数值型数据框和矩阵差不多,转置不会有太大问题。

转置后

但是转置前是data.frame,转置后的结果是matrix

如果data.frame里面既有数值型,又有字符串,t()转置后得到的matrix里面全部都会变成字符串。

可以看到Name是chr类型,Score是num类型 。再来t()转置后看看

可以看到原来的Score的数值型被转换成chr字符串类型了,不能再进行针对数值型的操作了。

这个时候如果还希望保持原来的数据类型,则需要用到as.data.frame函数

这时候转化后的Score行里面的数字都是数值型了。

因此,在对保护复杂数据类型的data.frame进行转置时,最好使用as.data.frame(t(x))来操作。

T检验:符合正态分布的数据用T检验

秩和检验:不满足正态分布的数据用秩和检验

正态分布的检验

非正态分布

非正态分布中值比均值有意义

如果点在直线两侧则为正态分布。图示为非正态分布

wilcox.test(变量1,变量2)

prop.test(抽样阳性, 抽样总数, p=已知百分比, alternative = "greater")

alternative 参数,假设方向用greater或less,默认双侧检验。

用于检验实际观测值与理论推断值之间的偏离程度。卡方值越大说明偏离越大,卡方值越小,说明偏离程度低。卡方值为0说明完全符合。

数据准备

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是一套覆盖了许多实验设计和准实验设计的综合方法。

参考资料: