R中如何统计多维的python 频数统计

[转载]在R中统计数据的频数或者密度分布并图形化
我的图书馆
[转载]在R中统计数据的频数或者密度分布并图形化
在进行数据分析之前,我们往往要首先对数据有一个大致的了解。对于统计性的数据,最好首先看看数据是如何分布,并把分布图示化,可以帮助我们确定后续的分析策略。现在,以R中著名的iris数据为例来计算其中一组数据的分布情况。
& data(iris)
& names(iris)
[1] "Sepal.Length" "Sepal.Width"
&"Petal.Length"
"Petal.Width"&
[5] "Species"
& length(iris$Sepal.Length)
1. 最简单的办法:hist
hist可以很直接的看到各组数据的Frequency或者Density分布情况,计算Frequency或者Density依据参数而定,比较粗糙。
& hist(iris$Sepal.Length)
#通过breaks参数可以设置计算分布的数据区间
& hist(iris$Sepal.Length,breaks=seq(4,8,by=1))
2. 可选的办法:density
查看density的帮助文档,可以发现函数density计算的是数据的核心密度(kernal
density)分布,大多数时候该函数并非我们想要的。但是有些时候,density可以帮助我们计算数据的密度分布,计算结果是continuous的,图形化的结果也是continuous的曲线。density的计算可以通过bw参数(bandwidth)来控制,bw参数最直观的影响就是曲线的平滑性。默认的bw是通过函数bw.nrd0()计算得出,也可以手动设置。
plot(density(iris$Sepal.Length))
#改变bw参数来改变density的结果
& plot(density(iris$Sepal.Length,bw=0.2))
3. 计算频度分布并用barplot作图
我经常用的办法,比较繁琐一些,但是感觉图形化的结果也更美观。首先用cut和table计算数据的频数分布,在用barplot作图。table函数计算的是每个数据在数据集中出现的次数,但是无法计算数据区间内的数据频数分布,需要用cut辅助。
& summary(iris$Sepal.Length)#看数据的分布区间
& &Min. 1st Qu.
&Median & &Mean
& 4.300 & 5.100
& 5.800 & 5.843
& m&-seq(4,8,by=1)#设置一个区间范围
& table(cut(iris$Sepal.Length,m))#计算各个区间的频数
(4,5] (5,6] (6,7] (7,8]&
&&barplot(table(cut(iris$Sepal.Length,m)))#作图
&barplot(table(cut(iris$Sepal.Length,seq(4,8,by=0.1))))#更详细的频数分布
[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢[R语言统计]频数表
频数表在统计学中是一个非常基本并且重要的概念,我们这里就来讲解它的基本用法。
首先我们需要载入数据,并查看数据的基本信息
install.packages('d') #安装vcd包,其中有可以利用的数据Arthritis
library(vcd)
载入需要的程辑包:grid
& head(Arthritis)#################################################
ID Treatment
Sex Age Improved
Treated Male
Treated Male
Treated Male
Treated Male
Treated Male
Treated Male
& class(Arthritis)################################################
[1] data.frame
& summary(Arthritis)##############################################
Placebo:43
1st Qu.:21.75
Treated:41
1st Qu.:46.00
Median :42.50
Median :57.00
3rd Qu.:63.25
3rd Qu.:63.00
从结果中看以看出,Arthritis是一个data.frame结构的数据。其中ID和Age是numeric型的数据,其他三个都是factor型的数据。
创建一维列联表
& a&-table(Arthritis$Improved)#创建一维列联表
& class(a)
#查看变量a的类型
Some Marked
从结果中可以看出,就是如下的表格
创建二维列联表
& b&-table(Arthritis$Sex,Arthritis$Improved)
& class(b)
None Some Marked
结果是如下表格
我们还可以将一维列联表a和二维列联表b转化成百分比的形式
& prop.table(a)
0...3333333
& prop.table(b)
Female 0...
给table添加边际和
& addmargins(a)####################################
Some Marked
& addmargins(b)####################################
None Some Marked Sum
& addmargins(prop.table(a))#########################
0....0000000
& addmargins(prop.table(b))#########################
Female 0....
只添加某个部分边际和
& addmargins(prop.table(b),1)
Female 0...
& addmargins(prop.table(b),2)
Female 0....R语言基本备忘-统计分析
时间: 11:31:49
&&&& 阅读:5502
&&&& 评论:
&&&& 收藏:0
标签:Part1 相关统计量说明
峰度系数Coefficientof kurtosis
峰度系数(Kurtosis)用来度量数据在中心聚集程度。在正态分布情况下,峰度系数值是3(但是SPSS等软件中将正态分布峰度值定为0,是因为已经减去3,这样比较起来方便)。&3的峰度系数说明观察量更集中,有比正态分布更短的尾部;&3的峰度系数说明观测量不那么集中,有比正态分布更长的尾部,类似于矩形的均匀分布。
偏度系数skew
SEMean 是 Standard error ofthe mean的缩写,
标准误差平均值,也叫平均数标准误差,是描述均数抽样分布的离散程度及衡量均数抽样误差大小的尺度。SE Mean的计算公式如下:
均方误差MeanSquared Error, MSE
数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。与此相对应的,还有均方根误差RMSE、平均绝对百分误差等等。
标准偏差StdDev,Standard Deviation
标准偏差反映数值相对于平均值(mean) 的离散程度。
变异系数(Coefficientof Variation)
Part2 R中基本统计函数实现
R语言中除本身有的获取统计量的方法summary()之外,能得到描述性统计量的包有Hmisc、pastecs和psych。这里使用的数据是R中已有车辆路试(mtcars)数据集,挑取其中的几个字段,英里数(mpg)、马力(hp)和车重(wt)来做后续的示例数据集。
vars &- c(“mpg”,”hp”,”wt”)
summary(mtcars[vars])
#统计结果有最小值、最大值、平均值、上四分位数、下四分位数
library(Hmisc)
describe(mtcars[vars])
#统计结果有总数、缺失数、唯一值、平均值、各个分位数、最大值最小值五个
library(pastecs)
stat.desc(mtcars[vars])
#统计结果有总数、null数、NA数、最小、最大、差值、和、平均值、0.95置信区间均值、方差、标准差、变异系数其方法
desc=FALSE时,基本统计量总数、null数、NA数、最小、最大、差值、和norm=TRUE时,多六个个正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro–Wilk正态检验结果。
library(psych)
describe(mtcars[vars])
#缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误差
注意:Hmisc包中describe()函数被新加载的包psych中的describe函数屏蔽,要使用Hmisc中的函数时,使用下面代码Hmisc::describe(mt)
获取分组统计量
aggregate()
aggregate(mtcars[vars], by = list(am =mtcars$am), mean)
aggregate(mtcars[vars], by = list(am =mtcars$am), sd)
缺点:只能获取平均值、标准差这样的单值统计量。
by()可以自定义函数
dstats &- function(x){c(max=max(x),min=min(x))}
by(mtcars[vars], mtcars$am, dstats)
doBy包中的summaryBy()可以自定义函数
library(doBy)
summaryBy(mpg + hp + wt ~ am, data = mtcars,FUN = mystats)
psych包中的describe.by()函数不能自定义函数,就是describe()方法中的那些统计量。若存在一个以上的分组变量,你可以使用list(groupvar1, groupvar2, ... , groupvarN)。
library(psych)
describe.by(mtcars[vars], mtcars$am)
利用reshape包中的cast方法来自定义分组统计量的一个例子如下:
library(reshape)
dstats &- function(x) (c(n = length(x),mean = mean(x), sd = sd(x)))
dfm &- melt(mtcars, measure.vars =c(&mpg&, &hp&, &wt&), id.vars = c(&am&,&cyl&))
cast(dfm, am + cyl + variable ~ ., dstats)
频数表和列联表
数据来自vcd包中的Arthritis数据集。这份数据来自Kock & Edward (1988),表示了一项风湿性关节炎新疗法的双盲临床实验的结果。
install.packages(&vcd&)
library(vcd)
head(Arthritis)
R中提供的创建频数表和列联表的方法有下面几种:
一维列联表
mytable &- with(Arthritis,table(Improved))#某一列的频数统计表
prop.table(mytable)#根据频数统计表得到百分比表
prop.table(mytable)*100
二维列联表
mytable &- xtabs(~ Treatment+Improved,data=Arthritis)
margin.table(mytable, 1)#按行计数
prop.table(mytable, 1) #按行求百分比
margin.table(mytable, 2)#按列计数
prop.table(mytable, 2)#按列求百分比
prop.table(mytable)#行列合计求百分比
addmargins(mytable)#对计数结果列求和
addmargins(prop.table(mytable))#对百分比结果列求和
addmargins(prop.table(mytable, 1), 2)#对百分比结果按行求和
addmargins(prop.table(mytable, 2), 1)#对百分比结果按列求和
使用gmodels包中的CrossTable()函数是创建二维列联表的第三种方法。CrossTable()
函数仿照SAS中PROC FREQ或SPSS中CROSSTABS的形式生成二维列联表。CrossTable()函数有很多选项,可以做许多事情:计算(行、列、单元格)的百分比;指定小数位数;进行卡方、Fisher和McNemar独立性检验;计算期望和(皮尔逊、标准化、调整的标准化)残差;将缺失值作为一种有效值;进行行和列标题的标注;生成SAS或SPSS风格的输出。可参阅help(CrossTable)以了解详情。
install.packages(&gmodels&)
library(gmodels)
CrossTable(Arthritis$Treatment,Arthritis$Improved)
多维列联表
mytable &- xtabs(~Treatment+Sex+Improved, data=Arthritis)#生成三维表
ftable(mytable)#以一种更紧凑的方式生成三维表
margin.table(mytable, 1)# 边际频数表
margin.table(mytable, 2)
margin.table(mytable, 3)
margin.table(mytable, c(1,3))# 治疗情况(Treatment)×改善情况(Improved)的边际频数
ftable(prop.table(mytable, c(1, 2)))# 治疗情况(Treatment)× 性别(Sex)的各类改善情况比例
ftable(addmargins(prop.table(mytable, c(1,2)), 3))
独立性检验
卡方独立性检验
chisq.test()函数对二维表的行变量和列变量进行卡方独立性检验。
library(vcd)
mytable &- xtabs(~Treatment+Improved,data=Arthritis)#治疗情况和改善情况
chisq.test(mytable)
mytable &- xtabs(~Improved+Sex,data=Arthritis)#性别和改善情况
chisq.test(mytable)
检验中,治疗情况和改善情况不独立(p & 0.01),患者性别和改善情况相互独立(p & 0.05)。卡方检验的介绍。
Fisher精确检验
fisher.test()函数可进行Fisher精确检验,也是针对二维列联表进行的检验。Fisher精确检验的原假设是:边界固定的列联表中行和列是相互独立的。
mytable &- xtabs(~Treatment+Improved,data=Arthritis)
fisher.test(mytable)
上面p=0.001393,因此原假设不成立,治疗情况和改善情况之间存在关系,两者不独立。关于Fisher精确检验的介绍。
Cochran-Mantel—Haenszel检验
mantelhaen.test()函数可用来进行Cochran—Mantel—Haenszel卡方检验,其原假设是,两
个名义变量在第三个变量的每一层中都是条件独立的。
mytable &-xtabs(~Treatment+Improved+Sex, data=Arthritis)
mantelhaen.test(mytable)
上面p-value=0.0006647,可以知道,患者接受的治疗与得到的改善在性别的每一水平下并不独立,即不管性别是什么,治疗情况和改善情况都存在关系。
相关性的度量
R提供了多种检验类别型变量独立性的方法,这里讲到三种检验分别为卡方独立性检验、Fisher精确检验和Cochran-Mantel–Haenszel检验。
vcd包中的assocstats()函数可以用来计算二维列联表的phi系数、列联系数和Cramer’s V系数。
library(vcd)
mytable &- xtabs(~Treatment+Improved,data=Arthritis)
assocstats(mytable)
这些相关性系数的介绍及其计算方式不详细说明了,提供一个参考:
Φ相关系数的大小,表示两因素之间的关联程度。当Φ值小于0.3时,表示相关较弱;当Φ值大于0.6时,表示相关较强。适用于2×2表即四格表。
C系数的大小,表示两因素之间的关联程度。C系数可能的最大值依赖于列联表的行列数,并随行列增大而增大,只有行列数相同的列联表比较其列联系数的大小。
cramer’s V系数
cramer’s V系数是Phi系数的修正值,适用于四格表,也适用于大于2×2表格,当行列有一个为二维时,V系数就等于Phi系数。
多维联表转换为扁平表格
table2flat &- function(mytable) {
df &- as.data.frame(mytable)
rows &- dim(df)[1]
cols &- dim(df)[2]
for (i in 1:rows) {
for (j in 1:df$Freq[i]) {
row &- df[i, c(1:(cols - 1))]
x &- rbind(x, row)
row.names(x) &- c(1:dim(x)[1])
treatment &- rep(c(&Placebo&,&Treated&), 3)
improved &- rep(c(&None&,&Some&, &Marked&), each = 2)
Freq &- c(29, 13, 7, 7, 7, 21)
mytable &- as.data.frame(cbind(treatment,improved, Freq))
mydata &- table2flat(mytable)#
head(mydata)
相关系数可以用来描述定量变量之间的关系。相关系数的符号(+、-)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1)。这一部分介绍多种相关系数和相关性的显著性检验方法。使用的数据是R中测试数据state.x77数据集,它提供了美国50个州在1977年的人口、收入、文盲率、预期寿命、谋杀率和高中毕业率数据。
R可以计算多种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数、偏相关系数、多分格(polychoric)相关系数和多系列(polyserial)相关系数。接下来依次看这些数据。
Pearson、Spearman和Kendall相关
cor()函数可以计算这三种相关系数,而cov()函数可用来计算协方差。这两个方法的参数如下:
states &- state.x77[, 1:6]
cov(states)#计算states数据集的协方差
cor(states)# 计算states数据集的相关系数,默认pearson
cor(states, method=&spearman&)# 计算states数据集的spearman系数
我们能看到收入和高中毕业率之间存在很强的正相关,文盲率和预期寿命之间存在很强的负相关,文盲率和谋杀率存在很强的正相关。还可以自己定义想要计算相关性的行列。
x &- states[, c(&Population&,&Income&, &Illiteracy&, &HS Grad&)]
y &- states[, c(&Life Exp&,&Murder&)]
偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。
install.packages(&ggm&)
library(ggm)
pcor(c(1, 5, 2, 3, 6), cov(states))
pcor(c(3, 5, 1, 2, 6), cov(states))
上面两个结果一是在控制了收入、文盲率和高中毕业率的影响时,人口和谋杀率之间的相关系数为0.3462724。二是在控制了人口、收入和高中毕业率的影响时,文盲率和谋杀率之间的相关系数为0.5989741,这个值已经很大了,说明这两者之间的关系很大。
相关性的显著性检验
cor.test()函数对单个的Pearson、Spearman和Kendall相关系数进行检验。使用格式如下:
cor.test(x, y, alternative=, method=)
x和y为要检验相关性的变量,alternative则用来指定进行双侧检验或单侧检验(取值
为&two.side&、&less&或&greater&),而method用以指定要计算的相关类型(&pearson&、&kendall&或&spearman&)。当研究的假设为总体的相关系数小于0时,请使用alternative=&less&。在研究的假设为总体的相关系数大于0时,应使用alternative=&greater&。默认情况下,假设为alternative=&two.side&(总体相关系数不等于0)。
cor.test(states[, 3], states[, 5])
cor.test()方法有一个不足就是一次只能检验一种相关关系的,psych包中的corr.test()函数可以一次检验更多变量之间的相关性值和显著水平。其使用格式如下:
corr.test(x, y, use=, method=)
参数use=的取值可为&pairwise&或&complete&(分别表示对缺失值执行成对删除或行删除)。参数method=的取值可为&pearson&(默认值)、&spearman&或&kendall&。
library(psych)
corr.test(states, use =&complete&)
这里使用MASS包中的UScrime数据集。它包含了1960年美国47个州的刑罚制度对犯罪率影响的信息。我们感兴趣的结果变量为Prob(监禁的概率)、U1(14~24岁年龄段城市男性失业率)和U2(35~39岁年龄段城市男性失业率)。类别型变量So(指示该州是否位于南方的指示变量)将作为分组变量使用。
独立样本的t检验
library(MASS)
t.test(Prob ~ So, data=UScrime)
美国的南方犯罪,是否更有可能被判监禁?对象是南方和非南方各州,因变量为监禁的概率。结果是拒绝南方各州和非南方各州拥有相同监禁概率的假设(p & .001)。
非独立样本的t检验
library(MASS)
sapply(UScrime[c(&U1&,&U2&)], function(x) (c(mean = mean(x), sd = sd(x))))
with(UScrime, t.test(U1, U2, paired =TRUE))
较年轻(14~24岁)男性的失业率是否比年长(35~39岁)男性的失业率更高?在这种情况下,这两组数据并不独立。差异的均值(61.5)足够大,可以保证拒绝年长和年轻男性的平均失业率相同的假设。年轻男性的失业率更高。
参考:《R语言实战》
有任何问题建议欢迎指正,转载请注明来源,谢谢!标签:原文地址:http://blog.csdn.net/cl/article/details/
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码![转载]R语言做统计的几个常用函数
test=c(1,2,3,4,5)
mean(test)
test=matrix(1:10,2,5)
& [,1] [,2] [,3] [,4] [,5]
test=matrix(1:10,5,2)
& [,1] [,2]
& apply(test,2,mean)
&###apply可以对于矩阵做统计。1代表列,2代表行
apply(test,1,mean)
[1] 3.5 4.5 5.5 6.5
test=test[,1]
mean(test,trim=0)
2.对数据进行排序的函数
&sort(), order(), rank()....
test=c(1,3,7,4,9,0,5,34,3)
& sort(test)
&#将数重新排列
&9 &0 &5 34
& order(test)
& #原数据的秩序
[1] 6 1 2 9 4 7 3 5
rank(test)
[1] 2.0 3.5 7.0 5.0 8.0 1.0
6.0 9.0 3.5
median(test)
quantile(test,probs=seq(0,1,0.25))
&25% &50% &75%
quantile(test,probs=seq(0,1,0.25))[1]
quantile(test,probs=0.25)
& var(test)
[1] 107.75
& sd(test)
[1] 10.38027
返回向量x中最大元
返回向量x中最小元
which.max(x)
返回x最大元的下标
which.min(x)
返回x最小元的下标
计算样本x的均值
计算样本x的中位数
计算中位绝对离差1.4826median(abs(x-median(x)))
计算样本x的方差
计算样本x的标准差
返回向量c(min(x),max(x))
计算样本x的四分位数极差
quantile(x)
计算样本x的常用分位数
summary(x)
计算样本x的常用描述性统计量(五数概括)
返回向量x的长度
返回对象x的类型
给出向量x的总和
给出向量x的乘积
取向量x的逆序
按升序排序,&选项decreasing=TRUE表降序
返回x的秩(升序),&选项decreasing=TRUE表降序
返回向量x的累积和
cumprod(x)
返回向量x的累积积
返回向量x的累积最小值
返回向量x的累积最大值
计算样本x,y的协方差
计算样本x,y的协方差
计算样本x,y的相关系数
outer(x,y)
计算样本x,y的外积
sample(x,n)
从样本x中抽取n个个体,选项replace=TRUE表有放回抽样,prob=y表x中元素出现的概率
choose(n,k)
从n中抽k个组合
density(x,bw=,kernel=“ ”)
x的核密度估计,bw为窗宽,kernel为选择光滑化函数
kde2d(x,y)
MASS程序包中二维核密度估计
hist(x,breaks=“ ”,freq=T)
x的频数直方图
skewness(x)
样本的偏度系数&(需加载fBasics程序包)
kurtosis(x)
样本的峰度系数&(需加载fBasics程序包)
basicStats( x)
fBasics包中的命令,计算常用的统计特征量
lowess( )或loesss( )
用一条非线性曲线拟合散点图
aggregate(数据框,分组变量,函数)
对数据框的指定分组变量按指定函数统计分析
optimize(f=,interval=,maximum=TRUE,… )
单参数的极大似然估计(求单变量极值)
optim(par,fn,gr=NULL,method=c(“Nelder-Mead”,
“BFGS”, “CG”, “L-BFGS-B”, “SANN”),…)
按选用的method求多元函数极值(多维极大似然估计)
nlm(f,p,hessian=FALSE,typsize=rep(1,length(p)),fscale=1,…)
使用牛顿-拉夫逊算法求函数的最小值点
t.test(x,y,alternative=c(“two.sided”, “less”,
“greater”),mu=0,paired=FALSE,var.equal=FALSE,conf.level=0.95,…)
方差未知时均值的区间估计与假设检验
var.test(x,y,ratio=1,alternative=c(“two.sided”, “less”,
“greater”),conf.level=0.95,…)
两正态总体方差比的区间估计与假设检验
prior.norm(mean=, cov=, trendsd = 0)
evdbayes包中产生三参数(位置、尺度、形状)服从三维正态的先验分布
prior.prob(quant, alpha,
trendsd = 0)
evdbayes包中产生Beta分布参数的先验分布
prior.quant(prob =
10^-(1:3), shape, scale, trendsd = 0)
evdbayes包中产生Gamma分布参数的先验分布
posterior(n, init, prior, lh = c("none", "gev", "gpd", "pp","os"), ..., psd,
= 0, thin = 1)
evdbayes包中产生参数的后验分布,n迭代次数,init为初始迭代值,prior为先验分布,lh为极大似然函数适用分布,有gev,gpd,pp,os,none,psd为建议分布标准差,
hill(data, option =
c("alpha","xi","quantile"), start = 15,end = NA, reverse = FALSE, p
= NA, ci = 0.95, auto.scale = TRUE, labels = TRUE, ...)
evir包中hill估计
gpd(data, threshold = NA,
nextremes = NA, method = c("ml", "pwm"),information =
c("observed","expected"), ...)
evir包中GPD分布估计,&threshold
=&阈值, nextremes = k(第k大次序量位置),两者选一. method = c("ml", "pwm")中ml表极大似然方法,pwm表概率权矩方法,
plot.gpd(gpd(data,threshold=))或plot(gpd(data,threshold=))
(evir包)四选项:选1画超出量分布,2画底分布的尾,3残差图4残差的QQ图&0退出
tailplot(x, optlog = NA,
extend = 1.5, labels = TRUE, ...)
evir包中画底分布的尾,x为gpd产生数据,optlog= “x”x轴取对数, “y”y轴取对数,
“xy”xy都取对数,
quant(data, p = 0.99,
models = 30, start = 15, end = 500,reverse =TRUE, ci = 0.95,
auto.scale = TRUE, labels = TRUE, ...)
evir包中GPD&高分位数估计图
shape(data, models = 30, start = 15, end = 500, reverse = TRUE,
= 0.95, auto.scale = TRUE, labels = TRUE, ...)
evir包中画gpd分布的形状参数随极值数k或阈值u的变化图
mrl.plot(data, umin=min(data), umax = max(data) - 0.1,conf = 0.95, nint = 100)
ismev包中画平均剩余寿命图,用来辅助阈值的选取
gpd.fitrange(data, umin, umax, nint = 10, show = FALSE)
ismev包参数的mle图,&用来辅助阈值的选取
gpd.fit(xdat, threshold, npy = 365, ydat = NULL, sigl = NULL,&&&&shl = NULL, siglink = identity, shlink = identity, siginit = NULL,shinit = NULL, show = TRUE,method = "Nelder-Mead", maxit = 10000, ...)
ismev包gpd参数的极大似然估计
gpd.prof(z, m, xlow, xup, npy = 365, conf = 0.95, nint = 100)或gpd.profxi(z, xlow, xup, conf = 0.95, nint = 100)
ismev包gpd参数的轮廓对数似然,
z为gpd.fit产生的参数数据,m为重现期
gpd.diag(z)
ismev包gpd的诊断图,z为gpd.fit产生数据
##更多函数参见:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。R—基本统计分析之频数与列联表R—基本统计分析之频数与列联表等我的人百家号继续使用上一周的数据,对R提供的基础统计分析中的频数与列联表统计进行总结,数据如下:一维列联表:使用table()函数统计每个课程在表中出现的频次,再使用prop.table()统计频率,并将其结果进行可视化:其中,饼图函数是pie(),其中有很多参数本例没有用到,如颜色、图表名称、图标之类的,大家可自行研究;head()、paste()、names()和options()大家可以单独运行看其作用。二维列联表:这个会比较复杂一点,首先可以使用table()或者xtabs()统计频次,其次可以使用margin.table()统计边际频次然后可以使用prop.table统计频率,依然分几种情况,并且将table()和xtabs()的结果同时应用,证明这两个函数果然没有啥区别。最后对其结果进行可视化,随便用prop.table(no4,2)的结果吧,采用两种图形,分别是堆砌条形图和分组条形图,两者只差一个beside=true的条件:不过这个例子实在不太符合现实分析案例,所以第一无法充分表述该功能的作用,第二由于数据有限,只适用至二维列联表,三维及多维列联表无法体现,具体的实际应用还需大家举一反三。以上,欢迎讨论。欢迎关注“三只产品数据汪1”,更多原创内容等你看本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。等我的人百家号最近更新:简介:为了等你,我错过了等我的人。作者最新文章相关文章}

我要回帖

更多关于 matlab 频数统计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信