R语言基础统计方法图文实例讲解

tidyr

> tdata <- data.frame(names=rownames(tdata),tdata)行名作为第一列
> gather(tdata,key="Key",value="Value",cyl:disp,mpg)创key列和value列,cyl和disp放在一列中
-号减去不需要转换的列
> spread(gdata,key="Key",value="Value")
根据value将key打散开 与unite函数对立
separate(df,col=x,into=c("A","B"))将数据框的列分割
unite(x,col="AB",A,B,sep='.')

dplyr

> dplyr::filter(iris,Sepal.Length>7)条件过滤
> dplyr::distinct(rbind(iris[1:10,],iris[1:15,]))去除重复行
> dplyr::slice(iris,10:15)切片
> dplyr::sample_n(iris,10)随机10行
> dplyr::sample_frac(iris,0.1)按比例随机选取
> dplyr::arrange(iris,Sepal.Length)排序
dplyr::arrange(iris,desc(Sepal.Length))降序
> select(starwars,height)选取
> summarise(iris,avg=mean(Sepal.Length))

统计函数

%>%链式操作符,管道 ctrl+shift+m
> iris %>% group_by(Species)
> dplyr::group_by(iris,Species)
> iris %>% group_by(Species) %>% summarise(avg=mean(Sepal.Width)) %>% arrange(avg)
> dplyr::mutate(iris,new= Sepal.Length+Petal.Length)相加总和
> dplyr::left_join(a,b,by="x1")
> dplyr::right_join(a,b,by="x1")
> dplyr::full_join(a,b,by="x1")
> dplyr::semi_join(a,b,by="x1")交集部分
> dplyr::anti_join(a,b,by="x1")补集部分
> intersect(first,second)交集
> dplyr::union_all(first,second)并集
> dplyr::union(first,second)非冗余并集
> setdiff(first,second)补集
heatmap输入矩阵
lm输入数据框
plot向量和向量-散点图,向量和因子-条形图
cbind,rbind矩阵或数据框
sum,mean,sd,range,median,sort,order向量
main 字符串不能为向量
na.rm true和false
axis side参数1到4
fig 包含四个元素向量
> plot(c(1:20),c(seq(1,89,length.out=20)),type="l",lty=1)实线
> plot(c(1:20),c(seq(1,89,length.out=20)),type="l",lty=2)虚线

数学统计

> x <- rnorm(n=100,mean=15,sd=2)生成100个平均数为15方差为2的随机数
> qqnorm(x)
set.seed(666) runif(50)绑定随机数
dgama(c(1:9),shape=2,rate=1)生成密度gama分布;随机数

描述性统计

summary()
fivenum()
Hmisc describe()
pastecs stat.desc() basic=T norm=T
psych describe() trim=0.1去除最低最高10%
> aggregate(Cars93[c("Min.Price","Price","Max.Price"," MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),mean)字符串型 返回一个统计函数
doBy > summaryBy(mpg+hp+wt~am,data=myvars,FUN = mean)
psych describe.by(myvars,list(am=mtcars$am))分组统计
describeBy(myvars,list(am=mtcars$am))详细信息

统计函数 二元类元表

> table(cut(mtcars$mpg,c(seq(10,50,10))))频数统计
> prop.table(table(mtcars$cyl))频数占比
> table(Arthritis$Treatment,Arthritis$Improved)
> with(data=Arthritis,(table(Treatment,Improved)))省略数据集的名字
> xtabs(~Treatment+Improved,data=Arthritis)根据类别统计频数
> margin.table(x,1/2)总和
> addmargins(x)将总和添加到原表中
> ftable(y)评估式类元表

独立性检验

原假设:不变 备择假设:变化
P值越小越能实现
> mytable <- table(Arthritis$Treatment,Arthritis$Improved)
> chisq.test(mytable)卡方独立性检验
> fisher.test(mytable)精确独立检验
> mantelhaen.test(mytable)
> mytable <- xtabs(~Treatment+Sex+Improved,data=Arthritis)
> mantelhaen.test(mytable)

相关性检验

> cor(state.x77) > cor(x,y)
> cov(state.x77)
偏相关
ggm
> pcor(c(1,5,2,3,6),cov(state.x77))
> cor.test(state.x77[,3],state.x77[,5])
psych
> corr.test(state.x77)
> x <- pcor(c(1,5,2,3,6),cov(state.x77))
> pcor.test(x,3,50)
MASS
> t.test(Prob~So,data=UScrime)

绘图函数

散点图 x、y
直方图 因子
热力图 数据矩阵
象限图 因子、向量
> plot(women$height~women$weight)关联图
> fit <- lm(height~weight,data=women)
> plot(fit)
S3 par/plot/summary
> plot(as.factor(mtcars$cyl),col=c("red","yellow","blue"))

偏度是统计数据分布偏斜方向程度的度量,统计数据分布非对称程度数字特征、峰度是表征概率密度分布曲线在平均值处峰值高低的特征数

> mystats <- function(x,na.omit=FALSE){
+ if(na.omit)
+ x <- x[!is.na(x)]
+ m <- mean(x)
+ n <- length(x)
+ s <- sd(x)
+ skew <- sum((x-m^3/s^3))/n
+ kurt <- sum((x-m^4/s^4))/n-3
+ return(c(n=m,mean=m,stdev=s,skew=skew,kurtosis=kurt))
+ }
> i=1;while (i<=10){print("Hello,World");i=i+2;}
for(i in 1:10){print("Hello,World")}
> ifelse(score>60,print("PASS"),print("FAIL")

线性回归

> fit <- lm(weight~height,data=women)
> summary(fit)
> coefficients(fit)
> confint(fit,level=)置信区间,默认95%
> fitted(fit)拟合模型预测值
源数据-预测值=残差residuals()
> predict(fit,women1)根据结果对新数据进行预测
残差拟合图,正态分布图,大小位列图,残差影响图
plot(women$height,women$weight)
abline拟合曲线
> fit2 <- lm(weight~height+I(height^2),data=women)增加二次项
> lines(women$height,fitted(fit2),col="red")
将点连成线,根据拟合曲线
Pr(>|t|)估计系数为0假设的概率,小于0.05
Residual standard error残差越小越好
Multiple R-squared拟合值越大越好,解释数据量
F-statistic模型是否显著,越小越好
AIC比较回归值拟合度结果
MASS
stepAIC逐步回归法
leaps
regsubsets全子集回归法
> par(mfrow=c(2,2)) plot四幅图显示在同个画面
抽样验证法
500个数据进行回归分析,predict对剩下500个预测,比较残差值

单因素方差分析

> library(multcomp)
> attach(cholesterol)
> table(trt)
> aggregate(response,by=list(trt),FUN=mean) 分组统计平均值查看效果最好因子
> fit <- aov(response~ trt,data=cholesterol) 方差分析
> summary(fit) 看统计结果,方差结果看F值 越大组间差异越显著、P值衡量F值越小越可靠

协方差

> attach(litter)
> aggregate(weight,by=list(dose),FUN=mean)
> fit <- aov(weight~gesttime+dose,data=litter)
> summary(fit)

双因素方差分析

> attach(ToothGrowth)
> xtabs(~supp+dose)统计频率
> aggregate(len,by=list(supp,dose),FUN=mean)剂量越小两者差别越明显
> ToothGrowth$dose <- factor(ToothGrowth$dose)
> fit <- aov(len ~ supp*dose,data=ToothGrowth)
> summary(fit)

HH

> interaction.plot(dose,supp,len,type="b",
col=c("red","blue"),pch=c(16,18),
main = "Interaction between Dose and Supplement Type")

多元方差分析

> library(MASS)
> attach(UScereal)
> shelf <- factor(shelf)
> aggregate(cbind(calories,fat,sugars),by=list(shelf),FUN=mean)
> summary.aov(fit)每组测量值不同,差异结果显著

功效分析

> pwr.f2.test(u=3,sig.level=0.05,power=0.9,f2=0.0769)假设显著性水平为0.05,在90%置信水平下至少需要184个样本
pwr.anova.test(k=2,f=0.25,sig.level=0.05,power=0.9) 2组效率为0.25显著性水平为0.05,功效水平为90,结果为86*2
> data(breslow.dat,package = "robust")
> summary(breslow.dat)
> attach(breslow.dat)
fit <- glm(sumY~Base + Trt +Age,data=breslow.dat,family=poisson(link="log")) 广义线性模型拟合泊松回归 响应变量

逻辑回归

> data(Affairs,package="AER")
> summary(Affairs)
> table(Affairs$affairs)
> prop.table(table(Affairs$affairs))
> prop.table(table(Affairs$gender))
> Affairs$ynaffair[Affairs$affairs>0] <- 1
> Affairs$ynaffair[Affairs$affairs==0] <- 0
> Affairs$ynaffair <- factor(Affairs$ynaffair,levels=c(0,1),labels=c("No","Yes"))
> table(Affairs$ynaffair)
> attach(Affairs )
> fit <- glm(ynaffair~gender+age+yearsmarried+children+religiousness+education+occupation+rating,data=Affairs,family=binomial())
> summary(fit)
> fit1 <- glm(ynaffair~age+yearsmarried+religiousness+rating,data=Affairs,family=binomial())
> summary(fit1)
> anova(fit,fit1,test="Chisq")

主成分分析

> library(psych)
> fa.parallel(USJudgeRatings,fa="pc",n.iter=100)直线与X符号生成值大于一和100次模拟的平行分析
CPU
> pc <- principal(USJudgeRatings,nfactors=1,rotate="none",scores=FALSE)/scores=T pc1包含成分整合,观测变量与主成分的相关系数,h2指成分公因子的方差,主成分对每个变量的方差解释度,u2指方差无法被主成分解释的比例,SSloadings特定主成分相关联的标准化后的方差值,proportion var每个主成分对相关值的解释程度

因子分析

> library(psych)
> options(digits=2)
> covariances <- ability.cov$cov
> correlations <- cov2cor(covariances)
> fa.parallel(correlations,fa="both",n.obs=112,n.iter=100)
> fa.varimax <- fa(correlations,nfactors=2,rotate="varimax",fm="pa")
> fa.promax <- fa(correlations,nfactors=2,rotate="promax",fm="pa")
factor.plot(fa.promax,labels=rownames(fa.promax$loadings))
fa.diagram(fa.varimax,simple=FALSE)
fa<-fa(correlations,nfactors=2,rotate="none",fm="pa",score=TRUE)
fa$weight
library(arules)
data(Groceries)
> fit <- apriori(Groceries,parameter=list(support=0.01,confidence=0.5))
> inspect(fit)

到此这篇关于R语言基础统计方法图文实例讲解的文章就介绍到这了,更多相关R语言基础统计方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • R语言逻辑回归深入讲解

    逻辑回归 > ###############逻辑回归 > setwd("/Users/yaozhilin/Downloads/R_edu/data") > accepts<-read.csv("accepts.csv") > names(accepts) [1] "application_id" "account_number" "bad_ind" "vehicle_

  • R语言boxplot函数深入讲解

    箱线图简介 箱线图又称箱形图或盒须图,该图是由5个特征值绘制而成的图形. 5个特征值是变量的最大值.最小值.中位数.第1四分位数和第3四分位数. 连接两个分位数画出一个箱子,箱子用中位数分割,把两个极值点与箱子用线条连接,即成箱线图. R中绘制箱线图的函数boxplot (1)基本用法 boxplot(x, ...) (2)公式形式的用法 boxplot(formula, data = NULL, ..., subset, na.action = NULL, drop = FALSE, sep

  • R语言数据类型和对象深入讲解

    以上数据类型均为原子向量. 单引号和双引号不做区分. R语言中TRUE和FALSE 可以简化为T和F 多元素向量的生成方式 方式 1:使用c()函数 ,这个是最常见的 c(combine) 如果基本类型混合的话,会强制类型转换 方式2: 使用seq()函数 (创建等差数列) 方式3:创建等差序列 事先知道向量的类型和长度,可以 产生随机数列 有放回抽样 (这个可以用np.random.choice()实现) 取向量的元素,并对其操作 (下表从1开始) 根据变量的不同,R语言数据对象可以分为 到此

  • 用R语言实现霍夫曼编码的示例代码

    可读性极低,而且其实也没必要用R语言写,图个乐罢了 p=c(0.4,0.2,0.2,0.1,0.1)###输入形如c(0.4,0.2,0.2,0.1,0.1)的概率向量,即每个待编码消息的发生概率 p1=p###将概率向量另存,最后计算编码效率要用 mazijuzhen=matrix(,nrow=length(p),ncol=length(p)-1)###码字矩阵:第i行对应向量p的第i个分量所对应的那个待编码消息的编码后的码字 group=matrix(c(1:length(p),rep(NA

  • R语言绘制地图实例讲解

    setwd("C:/Users/75377/Desktop/SHEEP_ROH") png("12.png",width = 7000,height = 5500,pointsize = 170) par(mai = c(12,12,12,12),mgp = c(2.1,0.5,0)) #地图数据下载http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip librar

  • R语言基础统计方法图文实例讲解

    tidyr > tdata <- data.frame(names=rownames(tdata),tdata)行名作为第一列 > gather(tdata,key="Key",value="Value",cyl:disp,mpg)创key列和value列,cyl和disp放在一列中 -号减去不需要转换的列 > spread(gdata,key="Key",value="Value") 根据value将

  • R语言的下载安装图文教程讲解

    什么是R语言 R语言是一个开源的数据分析环境,起初是由数位统计学家建立起来,以更好的进行统计计算和绘图,这篇wiki中包含了一些基本情况的介绍.由于R可以通过安装扩展包(Packages)而得到增强,所以其功能已经远远不限于统计分析,如果感兴趣的话可以到官方网站了解关于其功能的更多信息. 至于R语言名称的由来则是根据两位主要作者的首字母(Robert Gentleman and Ross Ihaka),但过于简短的关键词也造成在搜索引擎中很不容易找到相关的资料.不过这个专门的搜索网站可以帮到你.

  • R语言操作X轴日期实例讲解

    R语言操作X轴日期: 需要用到程序包library(lubridate):程序包是在R的安装包C:\R-3.4.4\bin\x64\RGui.exe里根据命令安装的 将日期改为xxxx/xx/01: firstDay='2020/02/12' : 可用 day(firstDay)<-01; //此时firstDay的数据为:'2020/02/01':day()是获取日,month()获取月份,year()获取年份 都需要'lubridate'包 可以通过write.table(firstDay,

  • R语言箱线图创建实例讲解

    箱线图是数据集中的数据分布良好的度量. 它将数据集分成三个四分位数. 此图表表示数据集中的最小值,最大值,中值,第一四分位数和第三四分位数. 它还可用于通过绘制每个数据集的箱线图来比较数据集之间的数据分布. R语言中使用boxplot()函数来创建箱线图. 语法 在R语言中创建箱线图的基本语法是 - boxplot(x, data, notch, varwidth, names, main) 以下是所使用的参数的描述 - x是向量或公式. 数据是数据帧. notch是逻辑值. 设置为TRUE以绘

  • R语言对CSV文件操作实例讲解

    在 R 语言中,我们可以从存储在 R 语言环境外的文件中读取数据. 我们还可以将数据写入将被操作系统存储和访问的文件. R 语言可以读取和写入各种文件格式,如​csv​,​excel​,​xml​等. 在本章中,我们将学习从​csv​文件读取数据,然后将数据写入​csv​文件. 该文件应该存在于当前工作目录中,以便 R 语言可以读取它. 当然我们也可以设置我们自己的目录并从那里读取文件. 获取和设置工作目录 您可以使用​getwd()​函数检查R语言工作区指向的目录. 您还可以使用​setwd(

  • 用R语言绘制ROC曲线的实例讲解

    1 roc曲线的意义 ROC曲线就是用来判断诊断的正确性,最理想的就是曲线下的面积为1,比较理想的状态就是曲线下的面积在0.8-0.9之间,0.5的话对实验结果没有什么影响. 如图: 2代码部分 install.packages("pROC") install.packages("ggplot2") library(pROC) library(ggplot2) #建立曲线 data(aSAH) rocobj1<-roc(aSAHo u t c o m e ,

  • R语言基础画图实例讲解

    1.plot函数 plot(x,y,xlim=c(0,100),ylim=c(0.4,1), type="o",lwd=2,col=2,pch=24,cex=1.5, yaxs="i",xaxs="i", xlab="Sample Ration(%)",ylab="Accuracy") x,y : 要画图的x轴内容和y轴内容 xlim,ylim: x轴和y轴的范围 type: 表示图的形状,是点.线.点线.

  • java数据库开发之JDBC基础使用方法及实例详解

    1.什么是JDBC JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 JDBC 数据库访问规范 应用程序 <-> JDBC <-> MySQL驱动 <-> MySQL                  <-> Oracle驱动 <-> Oracle 导入jar包 加载驱动 C

  • python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例

    信号与槽有三种使用方法 第一种:内置信号与槽的使用 第二种:自定义信号与槽的使用 第三种:装饰器的信号与槽的使用 一: 内置信号与槽的使用 内置信号与槽的使用,是指在发射信号时,使用窗口控件的函数,而不是自定义的函数,这种也是我们前面用的最多的,下面简单的一个实例,大家就会明白 import sys from PyQt5.QtWidgets import QMessageBox,QPushButton,QApplication,QWidget app=QApplication(sys.argv)

  • R语言属性知识点总结及实例

    属性(attribute):R中对象具备的特性 特性描述了所代表的内容以及R解释该对象的方式 很多时候两个对象之间的唯一差别在于它们的属性不同 常见的属性 属性 描述 class 对象的类 comment 对象的注释,一般用于描述对象的含义 dim 对象的维度 dimnames 与对象的每个维度相关的名字 names 返回对象的名字属性.返回结果取决于对象的类型.对于数据框对象会返回数据框的列名;对于数组会返回数组中被命名元素的名字 row,names 对象的行名(dimnames相关) tsp

随机推荐