r中list与python list matrixx有什么区别

Vector, Array, List and Data Frame 是R语言中定义的4中基本数据类型,了解它们之间的区别将会有助你更高效的使用R语言。
所有的元素必须是同一类型。 例如下面的代码创建了2个vectors.
name &- c("Mike", "Lucy", "John")
age &- c(20, 25, 30)
2.Array & Matrix
Matrix是一种特殊的vector。Maxtrix是一个拥有两个额外属性的vector:行数和列数。
& x &- matrix(c(1,2,3,4), nrow=2, ncol=2)
类似于maxtrix,但是arrays可以是二维以上。
List能包含不同类型的元素
& y &- list(name="Mike", gender="M", company="ProgramCreek")
[1] "Mike"
[1] "ProgramCreek"
4.Data Frame
Data Frame用于存储数据表,它是元素为vector的list,拥有相等的长度。 例如,用下面的代码创建一个data frame。
& name &- c("Mike", "Lucy", "John")
& age &- c(20, 25, 30)
& student &- c(TRUE, FALSE, TRUE)
& df = data.frame(name, age, student)
name age student
技术大牛书单你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。R语言学习详解_慧知文库
给出数据集mtcars的基本信息。?mtcars#显示数据集mtcars的详细信息Mtcars#显示数据集mtcars的全部32个观测值head(mtcars)#显示数据集mtcars中前6个观测值tail(mtcars)#显示数据集mtcars中后6个观测值names...
给出数据集 mtcars 的基本信息。 ?mtcars #显示数据集 mtcars 的详细信息 Mtcars #显示数据集 mtcars 的全部 32 个观测值 head(mtcars) #显示数据集 mtcars 中前 6 个观测值 tail(mtcars) #显示数据集 mtcars 中后 6 个观测值 names(mtcars) #显示数据集 mtcars 中的变量 data.entry(mtcars) #浏览和修改 mtcars 数据集 浏览和修改 mtcars 数据集 mtcars&-edit(mtcars) #修改数据后,存入同名数据集 MTcars&-edit(mtcars) #修改数据后,存入新数据集 xnew&-edit(data.frame()) #编辑生成新的数据集 xnew 比较下列命令区别: x&-c(10.4, 5.6, 3.1, 6.4, 21.7) #建立数据向量 1、data.entry(x) #打开数据编辑器修改数据 2、edit(x) #打开 R 编辑器修改数据 直接修改 mtcars(两个命令相同) fix(mtcars) mtcars&-edit(mtcars) attach(mtcars) #激活 mtcars, mpg #激活后,可直接用数据集的变量名 属性变量 table(cyl) #cyl 是属性变量,计算其频数表 barplot(table(cyl)) #频数直方图(对属性变量的) 数值变量 stem(mpg) #茎叶图 hist(mpg) #直方图 boxplot(mpg) #盒形图 mean(mpg) #均值 mean(mpg,trim=0.1) #截取上下各 10%数据后遗留数的均值 tapply(mpg,cyl,mean) #按分组变量 cyl 计算 mpg 的分组均值,如果将 mean 替换成其他统计 量,就可以计算其它各种分组统计量 IQR(mpg) #计算四分位差(函数大写)Q3-Q1 quantile(mpg) #计算四分位点,标明各分位点的位置 fivenum(mpg) #计算四分位点,不标明各分位点的位置 quantile(mpg,probs) #计算按向量 prob 给定的各百分位的样本值 probs=c(0.1,0.5,99.5/100) #给出各百分位 quantile(mpg,probs) #计算相应的样本值 summary(mpg) sd(mpg) var(mpg) skewness(mpg) #描述性统计 #标准差 #方差 #偏度
kurtosis(mpg) #峰度 散点图 plot(cyl,mpg) #气缸数与油耗的散点图 plot(hp,mpg) #马力与油耗的散点图 不同气缸数下的散点图 plot(hp,mpg,pch=cyl) #马力与油耗的散点图,pch 表示用字符图案画点 legend(250,30,pch=c(4,6,8), legend=c(&4 cylinders&,&6 cylinders&,&8 cylinders&)) #做出各气缸 符号的说明标记。这里 250,30 是说明框的左上角位置 线形回归 z&-lm(cyl~mpg) #将回归所有结果放入 z 中 cor(cyl,mpg) #汽缸数与油耗的相关系数 cor(cyl,mpg)^2 # 一元回归 R square 即为相关系数的平方 残差分析 lm.res&-lm(cyl~mpg) #将回归所有结果放入 lm.res 中 lm.resids&-resid(lm.res) #提取 lm.res 中的残差向量 plot(lm.resids) #画残差图 hist(lm.resids) #残差的直方图 qqnorm(lm.resids) #残差的 qq 图 qqline(lm.resids) #残差的 qq 线 结束分析并退出 R detach(mtcars) q() #从内存中清除数据集 mtcars #退出 R 改变内存变量 name&-&Carmen&;n1&-10;n2&-100;m&-0.5 #定义内存变量 ls() #显示所有定义的内存对象 ls(pat=&m&) #显示内存中含 m 的指定对象 ls(pat=&^m&) #显示内存中打头字为 m 的指定对象 ls.str() #显示内存中所有对象的详细信息 rm(x,y) #从内存中删除对象 x 与 y rm(list=ls()) #从内存中删除所有对象 rm(list=ls(pat=&^m&)) #从内存中删除所有打头字为 m 的指定对象 建立数值型向量 向量具有简单规律 seq()或”:” 1:10 #建立 1 到 10 的数字向量 1:10-1 #建立 0 到 9 的数字向量 1:(10-1) #建立 1 到 9 的数字向量 z&-seq(1,5,by=0.5) #从 1 到 5,每次递增 0.5 z&-seq(from=1,to=5,by=0.5) #等价于 z&-seq(1,5,by=0.5)
z&-seq(1,10,length=11) #从 1 到 10,等分为 11 个点 z&-seq(1,10,length.out=11) #等价于 z&-seq(1,10,length=11) 向量具有复杂规律 z&-rep(2:5,2) #2 到 5 循环 2 次 z&-rep(2:5,times=2) #等价于 z&-rep(2:5,2) z&-rep(2:5,rep(2,4)) #等价于 z&-rep(2:5,2) z&-rep(1:3,times=4,each=2) #数字 1 到 3 每个重复 2 次,共循环 4 次 向量没有规律 z&-rep(c(3,5),c(2,4)) #3 按后面 2 循环 2 次,5 按后面 4 循环 4 次 通过键盘逐个输入 z&-scan() #直接输入数据,回车键输入数据,空数据表示停止输入 sequence(3:5) #建立连着的数据,从 1 到 3,1 到 4,再 1 到 5 sequence(c(10,5)) #建立连着的数据,从 1 到 10,再从 1 到 5 建立逻辑向量 x&-c(10.4,5.6,3.1,6.4,21.7) #建立数值向量 x temp&-x&13 #建立一个 x 是否满足大于 13 的逻辑向量 函数 factor()的调用格式 factor(x,levels=sort(unique(x),na.last=TRUE),labels=levels, exclude=NA, ordered=is.ordered(x)) 字符型向量转换为因子 a&-c(&green&,&blue&,&green&,&yellow&) a&-factor(a) 数值型向量转换为因子 b&-c(1,2,3,1) b&-factor(b) 字符型因子转换为数值型因子 a&-c(&green&,&blue&,&green&,&yellow&) a&-factor(a) levels(a)&-c(1,2,3,4) 参考类似 b&-factor(c(&A&,&B&,&C&),labels=c(1,2,3)) 数值型因子转换为字符型因子 b&-c(1,2,3,1) b&-factor(b) levels(b)&-c(&low&,&middle&,&high&) 参考 ff&-factor(1:3,labels=c(&A&,&B&,&C&)) 提取向量中的元素 x&-seq(1:100) x[1:10] x[c(1,4)] y&-x[-(6:10)] #建立 1:100 的数据向量,存入 x #提取 x 的前 10 个元素 #提取 x 的第 1 和第 4 元素 #去除向量中与索引向量对应的元素
提取逻辑向量 x&-c(42,7,64,9) x&10 x[x&10] x[x&40&x&10] x[x&10]&-10 #产生数值向量 x #产生 x&10 是否成立的逻辑向量 #取 x&10 的值 #取 x&40 且 x&10 的值 #修改 x 中所有满足条件的数据为 10 y=runif(100,min=0,max=1) sum(y&0.5) sum(y[y&0.5]) y&-x[!is.na(x)] z&-x[(!is.na(x))&(x&0)] 建立数组 array(data,dim,dimnames) A&-array(a,dim=c(3,4,2)) #产生 0-1 上的 100 个均匀分布的随机数 #求小于 0.5 的元素的个数 #求小于 0.5 的元素的和 #求出 x 中的非缺失值放入向量 y 中 #求出 x 中的大于零的非缺失值放入向量 z 中 #以 a 中数据建立维数为(3,4,2)的数组 A 具体例子 A&-array(1:8,dim=c(2,2,2)) #建立一个 2x2x2 的数组,里面放置 1 到 8 dim(A) #求出 A 的维数 dimnames(A)&-list(c(&a&,&b&),c(&c&,&d&),c(&e&,&f&)) #定义数组中向量名 colnames(A) #A 的列变量名 rownames(A) #A 的行变量名 建立矩阵 A&-array(1:6,c(2,3)) A&-array(1:4,c(2,3)) A&-array(1: 8,c(2,3)) #建立 2 行 3 列矩阵 A,用 1-6 填入 #如果数据不够,自动循环 #建立 A 时,如数据多余,则自动截尾 标准矩阵命令 X&-matrix(1,nr=2,nc=2) #建立 2x2 标准矩阵 X&-diag(3) #建立 3x3 的单位阵 X&-diag(c(10,20,30)) #建立以 10,20,30 为对角元素的对角阵 X&-diag(2.5,nr=3,nc=5) #建立 3X5 的广义对角阵 X&-matrix(1:4,2) #建立 2x2 的矩阵,用 1-4 填入 X&-matrix(1:4,2,2) #等价于 X&-matrix(1:4,2) rownames(X)&-c(&a&,&b&) #定义行名 colnames(X)&-c(&c&,&d&) #定义列名 dim(X) #求出行列数 dimnames(X) #求出行列别名 X&-matrix(1:4,2,4) #按列填入,不够再次循环 X&-matrix(1:4,2,4,byrow=TRUE) #按行填入,不够再次循环
提取矩阵下标和元素 X&-matrix(1:6,2,3) X[2,2] X[2,] X[,2] X[,2,drop=FALSE] X[,c(2,3)] X[-1,] X[,-2] X[,3]&-NA X[is.na(X)]&-1 矩阵的运算 X&-matrix(1:6,2,3) t(X) diag(X) #用 1 到 6 建立一个 2x3 的矩阵 #提取 X 的(2,2)位的一个元素 #提取 X 的第二行 #提取 X 的第二列(按最小行或列数显示) #提取 X 的第二列,按原样显示 #提取 X 的第二、三列 #去掉第一行 #去掉第二列 #将第三列设为缺失值 #缺失值替换为 1 #用 1 到 6 建立一个 2x3 的矩阵 #转置矩阵 #对角向量 矩阵按行或列合并 m1&-matrix(1,nr=2,nc=2) #建立一个 2x2 的全 1 矩阵 m2&-matrix(2,nr=2,nc=2) #建立一个 2x2 的全 2 矩阵 rbind(m1,m2) #矩阵按行合并 cbind(m1,m2) #矩阵按列合并 矩阵运算 m2*m2 #矩阵按单元乘积,也即点乘 rbind(m1,m2)%*%cbind(m1,m2) #矩阵乘积 1 cbind(m1,m2)%*%rbind(m1,m2) #矩阵乘积 2 X&-matrix(1:4,2) #建立一个 2x2 的 1 到 4 的行列式 det(X) #X 的行列式 cov(X) #求出 X 各列之间的协方差矩阵 x&-c(1,2) y&-c(3,4) cor(x,y) #设 x #设 y #相关系数矩阵 求均值、中位数 m&-matrix(rnorm(n=12),nrow=3) #建立一个 3 行的 12 个服从标准正态分布的随机数矩阵 apply(m,MARGIN=1,FUN=mean) #按行取均值 apply(m,MARGIN=2,FUN=mean) #按列取均值 scale(m,center=T,scale=T) #中心化随机变量 row.med&-apply(m,MARGIN=1,FUN=median) #计算矩阵 m 每行的中位数 sweep(m,MARGIN=1,STATS=row.med,FUN= &-&) #每列各自减去列中位数 建立数据集两种方法(data frame)
x=c(42,7,64,9) #建立数据向量 x y=1:4 #建立数据向量 y 1、直接法 z.df=data.frame(INDEX=y,VALUE=x) #建立一个 2 列变量的数据集,放入 z.df weight&-c(70.6,56.4,80,59.5) #建立数据向量 weight x&-c(&adult &,&team&) #建立字符向量 x wag&-data.frame(weight,age=x) #构建数据集,变量数据长度不同时,会自动循环填充数据 x&-1:4; y&-2:4 #建立数据向量 x,y data.frame(x,y) #若变量长度不是一个周期,则出现错误 2、从外部数据文件读取 foo&-read.table(file=&c:/data/foo.txt&,header=T) 适用于数据集的函数: attach(Puromycin) #激活数据集 summary(Puromycin) #显示主要的描述性统计量 类似的统计计算函数 max(),min(),median(),var(),sd(),sum(),cov(),cor()同样适合于数据集,意 义相同。 pairs(Puromycin, panel=panel.smooth) #成对数据散点图 数据集下标与子集的提取: Puromycin[1,1] #提取第一个变量第一个观测值 Puromycin[c(1,3,5),c(1,3)] #提取数据集的一个子集(第 1、3、5 行观测值,第 1、3 列变量) Puromycin[c(1,3,5),c(&conc&,&state&)] #等价于上述命令 Puromycin[c(1,3,5),c(1,3)] Puromycin[c(1,3,5),] #提取数据集的第 1、3、5 行观测值,所有列 Puromycin$conc #等价于 Puromycin[,1],提取变量为 conc 的那列值 subset(Puromycin,state==&treated&&rate&160) #提取满足条件 state 为 treated, rate&16 的子集 数据集中添加新变量的三种方法: 若想增加新变量 iconc=1/conc: 1、基本方法 Puromycin$iconc&-1/ Puromycin$conc 2、使用 with()函数 Puromycin$iconc&-with(Puromycin,1/conc) 3、使用 transform()函数,可一次定义多个变量 Puromycin &-transform(Puromycin,iconc=1/conc,sqrtconc=sqrt(conc)) head(Puromycin) #显示头 6 行数据 列表的建立: 复杂数据分析需要生成包含不同类型的对象。R 的列表可以做到 L1&-list(1:6,matrix(1:4,nrow=2)) #建立向量和矩阵的混合列表 L2&-list(x=1:6,y=matrix(1:4,nrow=2)) #建立向量和矩阵的混合列表,并各自赋名 L2$x #显示 L2 中的 x 变量
数据的存储 d&-data.frame(obs=c(1,2,3),treat=c(&A&, &B&, &A&),weight=c(2.3,NA,9)) #建立数据集 1、 保存为简单的文本文件 write.table(d,file= &c:/data/foo.txt&,row.names=F,quote=F) #这里 quote 表示变量名不放入 双引号中 2、 保存为 csv 格式的文本文件 write.csv(d,file= &c:/data/foo.csv&,row.names=F,quote=F) 3、 保存为 R 格式文件 save(d,file= &c:/data/foo.Rdata &) 保存工作空间映像 save.image() #等价于下式 save(list=ls(all=TRUE),file=&c:/data/.Rdata&) 数据的读取 1、 使用函数 read.table() setwd(&c:/data&) #设置程序自动访问目录 HousePrice&-read.table(file=&houses.dat&,header=TRUE) 2、 使用函数 scan() 函数 scan()比 read.table()更灵活,可以指定变量的类型。另外,scan()可以创建不同的对 象:向量、矩阵、数据集、列表等。 mydata&-scan(&data.dat&,what=list(Sex=&&,Weight=0,Height=0) ) 3、 使用函数 read.fwf() 读取指定宽度格式的数据 mydata&-read.fwf(&data.txt&,width=c(1,4,3),col.names=c(&X&,&Y&,&Z&)) 4、 读取 Excel 数据 1) 从剪贴板读入数据。先将 Excel 的文件中的数据部分选择复制到剪贴板(ctrl+c) ,然 后用 R 读入 mydata&-read.delim(&clipboard&) 2) 使用程序包 RODBC 安装程序包 RODBC 在 R 中, 按步骤 “程序包-安装程序包-选取 CRAN 镜像服务器 (可选北京的) -RODBC” library(RODBC) #加载程序包 RODBC z&-odbcConnectExcel(&c:/data/body.xls&) #打开 Excel 文件 foo&-sqlFetch(z,&Sheet1&) #选择 Sheet1 工作单数据读入 foo close(z) #关闭 Excel 文件 R 中数据集的读取 1) R 的标准数据 datasets R 自身包含了一个有 100 多个数据集的数据集包 datasets,随着 R 一次性自动载入。 列出全部数据集 data() 用数据集名显示数据
Puromycin 2) 专用程序包中的数据集 读取其他已安装的专用程序包中的数据,可以使用 package 参数 data(package=&pkname&) #列出程序包 pkname 中的数据集,这里 pkname 只是一个 已安装的程序包的代表 data(dataname,package=&pkname&) #载入程序包 pkname 中的数据集 dataname 探索性数据分析 二项分布 n&-20 p&-0.2 k&-seq(0,n) 概率函数图 plot(k,dbinom(k,n,p),type='h',main='Binomial distribution,n=20,p=0.2',xlab='k') 分布函数图 plot(k,pbinom(k,n,p),type='h',main='Binomial distribution,n=20,p=0.2',xlab='k') 标准正态分布 密度函数图 curve(dnorm(x,0,1),xlim=c(-5,5),ylim=c(0,0.3),col='red',lwd=2,lty=3) 分布函数图 curve(pnorm(x,0,1),xlim=c(-10,10),ylim=c(0,1),col='red',lwd=2,lty=1) 直方图 从二项分布 B(100,0.9)中抽取容量为 N=100000 的样本,画直方图 N&-100000 #建立随机数的容量 n&-100 #建立二项分布的试验数 p&-0.9 #建立每次成功的概率 x&-rbinom(N,n,p) #求出服从二项分布的随机数 N 个 hist(x,xlim=c(min(x),max(x)),probability=T,nclass=max(x)-min(x)+1,col='lightblue',main ='Binomial distribution,n=100,p=.9') #直方图 lines(density(x,bw=1),col='red',lwd=2) #核密度估计图 单总体描述性统计 1、直方图 library(DAAG) #载入程序包 DAAG data(possum) #载入数据集 possum fpossum&-possum[possum$sex==&f&,] #选出性别为雌的负鼠数据放入 fpossum 中 par(mfrow=c(1,2)) #作图区域一分为二,一行两列 attach(fpossum) #加载数据集 hist(totlngth,breaks=72.5+(0:5)*5,ylim=c(0,22),xlab=&total length&,main=&A:Breaks at 72.5,77.5,...&) #画直方图 hist(totlngth,breaks=75+(0:5)*5,ylim=c(0,22),xlab=&total length&,main=&B:Breaks at
75,80,...&) #不同点位画直方图 2、茎叶图 stem(totlngth) 3、盒形图 boxplot(totlngth) 4、正态性检验 A)使用 QQ 图 qqnorm(totlngth,main=&Normality Check via QQ Plot&) #画 QQ 图 qqline(totlngth,col='red') #画正态线 B)与正态密度函数比较 #attach(fpossum) #加载数据集 dens&-density(totlngth) #将 totlngth 的基本统计量存入 dens 变量 xlim&-range(dens$x);ylim&-range(dens$y) #选取 x 和 y 的最大值 par(mfrow=c(1,2)) #将作图空间分为两个,一行两列 hist(totlngth,breaks=72.5+(0:5)*5,xlim=xlim,ylim=ylim,probability=T,xlab=&total length&,main=&A:Breaks at 72.5,77.5,...& ) #画直方图 lines(dens,col=par('fg'),lty=2) #画核密度函数 m&-mean(totlngth) #计算均值 s&-sd(totlngth) #计算标准差 curve(dnorm(x,m,s),col='red',add=T) #套用正态分布图 hist(totlngth,breaks=75+(0:5)*5,xlim=xlim,ylim=ylim,probability=T,xlab=&total length&,main=&B:Breaks at 75,80,...& ) #画直方图 lines(dens,col=par('fg'),lty=2) #画核密度函数 curve(dnorm(x,m,s),col='red',add=T) #套用正态分布图 C)使用经验分布函数 x&-sort(totlngth) #对 totlgnth 进行排序,存入 x n&-length(x) #计算 x 中元素的个数 y&-(1:n)/n #y 等分 m&-mean(totlngth) #计算均值 s&-sd(totlngth) #计算标准差 plot(x,y,type='s',main=&Empirical CDF of&) #画出经验分布函数 curve(pnorm(x,m,s),col='red',lwd=2,add=T) #画出正态分布函数 5、总体描述 summary(totlngth) #得到数据的均值和四分位点及最大、最小、中位数 其他的函数见开头 多组数据描述性统计 1、散点图 library(DAAG) #将程序包 DAAG 载入 data(cars) #将数据集 cars 载入内存 画散点图 plot(cars$dist~cars$speed,xlab=&Speed(mph)&,ylab=&Stopping distance(ft)&) 非参数 lowess 拟合(二元以上用 loess 拟合)--局部加权回归散点平滑法(locally weighted scatterplot smoothing)
lines(lowess(cars$speed,cars$dist),lwd=2) #非参数 lowess 拟合 rug(side=2,jitter(cars$dist,20)) #在纵轴上标明数据的具体位置 rug(side=1,jitter(cars$speed,5)) #在横轴上标明数据的具体位置 这里 jitter 函数是对原有数据根据标准差做个白噪声影响。 2、等高线图 library(chplot) #载入程序包 chplot data(hdr) #载入数据集 hdr x&-hdr$age #年龄存入 x y&-hdr$income #收入存入 y plot(x,y) #年龄和收入的散点图 library(MASS) #加载有二维密度估计函数 kde2d()的程序包 z&-kde2d(x,y) #用二维密度估计函数估计二维数据的密度函数 画等高线 contour(z,col=&red&,drawlabels=F,main=&Density estimation:contour plot&) 3、三维透视图 persp(z,main=& Density estimation:perspective plot&) 数据变换 data(Animals) #载入数据集 Animals head(Animals) #检查数据集内容 par(mfrow=c(1,2)) #将图分为两块 plot(brain~body,data=Animals) #画原始数据的散点图 plot(log(brain)~log(body),data=Animals) #画变换后数据的散点图 图形描述 n&-10 d&-data.frame(y1=abs(rnorm(n)),y2=abs(rnorm(n)),y3=abs(rnorm(n)),y4=abs(rnorm(n)), y5=abs(rnorm(n))) #建立一个由 5 个服从标准正态分布随机数的绝对值组 成的数据集 plot(d) #多元散点图,等价于 pairs(d) boxplot(d) #多变量比较的盒形图 描述性统计 summary(state.x77) #给出数据集 state.x77 的所有变量的描述性统计 分组概括函数 aggregate aggregate(state.x77,list(Region=state.region),mean) #给出按数据集 state.region 划分 区域的 state.x77 各变量的均值 aggregate(state.x77,list(Region=state.region,Cold=state.x77[,&Frost&]&130),mean) # 给 出按数据集 state.region 划分区域且一年中有雾的天数超过 130 的来统计 state.x77 各 变量的均值 apply(state.x77,2,sd) #给出所有变量的标准差,不推荐用 sd(state.x77) var(state.x77) #给出数据集 state.x77 的所有变量的协方差矩阵 aggregate(state.x77,list(Region=state.region),sd) #给出按数据集 state.region 划分区域 的 state.x77 各变量的标准差
相关系数用 cor(x,y=NULL,use=&all.obs&,method=c(&pearson&, &Kendall&, &spearman&) x&-c(44.4,45.9,46.0,46.5,46.7,47,48.7,49.2,60.1) #输入 x y&-c(2.6,10.1,11.5,30.0,32.6,50.0,55.2,85.8,86.8) #输入 y cor(x,y) #计算 pearson 相关系数 cor(x,y,method=&spearman&) #计算 spearman 秩相关系数 cor(x,y,method=&kendall&) #计算 kendall 系数 分类数据的描述性统计分析 直接输入列联表 Eye.Hair&-matrix(c(68,20,15,5,119,84,54,29,26,17,14,14,7,94,10,16),nrow=4,byrow=T) colnames(Eye.Hair)&-c(&Brown&, &Blue&, &Hazel&,&Green&) #列命名 rownames(Eye.Hair)&-c(&Black&, &Brown&, &Red&,&Blond&) #行命名 由原始数据构造列联表 table(state.division, state.region) #由原始数据构造不同 division 与不同 region 的列联 表 获得边际列表 margin.table(Eye.Hair,1) #获得列边际列表 margin.table(Eye.Hair,2) #获得行边际列表 round(prop.table(Eye.Hair,1),digits=2) #获得频率列联表 round(prop.table(Eye.Hair,1),digits=2)*100 #获得频率百分比列联表 data(HairEyeColor) #载入数据集 HairEyeColor a&-as.table(apply(HairEyeColor,c(1,2),sum)) # barplot(a,legend.text=attr(a,&dimnames&)$Hair) barplot(a,beside=TRUE,legend.text=attr(a,&dimnames&)$Hair) 点估计 1、 矩估计按计算的原理来求 2、 极大似然估计 A) 单参数情形下:用 optimize()函数求极值 f&-function(P)(P^517)*(1-P)^483 #定义函数 optimize(f,c(0,1),maximum=TRUE) #求极大值 B) 多参数情形下:用 optim,nlm 函数求极值 nlm 函数采用牛顿-拉夫逊算法求函数的最小值点。函数 optim 提供 method 选 项给出的 5 种方法中的一种进行优化。都是多维求极值函数。 区间估计 单正态总体 1、 方差已知,均值未知,求均值的置信区间: 没有现成的函数,现编: conf.int&-function(x,n,sigma,alpha){ options(digits=4) mean&-mean(x) c(mean-sigma*qnorm(1-alpha/2,mean=0,sd=1,
lower.tail=TRUE)/sqrt(n), mean+sigma*qnorm(1-alpha/2,mean=0,sd=1, lower.tail=TRUE)/sqrt(n)) } #方差已知时求置信区间函数 x&-c(175,176,173,175,174,173,173,176,173,179) #输入 x conf.int(x,10,1.5,0.05) #求标准差为 1.5 的 x 的置信度 0.95 的置信区间。 2、 方差未知,均值未知,求均值的置信区间: x&-c(175,176,173,175,174,173,173,176,173,179) #输入 x t.test(x,conf.level=0.95) #求 t-检验以及置信区间 t.test(x, conf.level=0.95)$conf.int #只求置信区间 3、 方差未知,均值未知,求方差的置信区间: 没有现成函数,需要现编 双正态总体 1、 两方差已知,两均值未知,求均值差 u1-u2 的置信区间: 没有现成函数,需要现编 2、 两方差未知但相等,两均值未知,求均值差 u1-u2 的置信区间: x&-c(628,583,510,554,612,523,530,615) #输入 x y&-c(535,433,398,470,567,480,498,560,503,426) #输入 y t.test(x,y,var.equal=TRUE) #求 t-检验以及均值差的置信区间 3、 两方差未知不等,两均值未知,求均值差 u1-u2 的置信区间: t.test(x,y,var.equal=FALSE) #求 t-检验以及均值差的置信区间 4、 两方差未知,两均值未知,求方差比的置信区间: x&-c(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9) #输入 x y&-c(20.7,19.8,19.5,20.8,20.4,19.6,20.2) #输入 y var.test(x,y) #求 F-检验以及方差比的置信区间 单总体比例的区间估计 prop.test(38,200,correct=TRUE) #求从 3042 人的人名录中随机抽取的 200 个中 有 38 人的地址变动情况下名录需要修改地址比例的置信区间 两总体比例差 p1-p2 的区间估计 like&-c(478,246) #A、B 两地喜欢某品牌的人数 people&-c() #A、B 两地被调查人数 prop.test(like,people) #求置信区间 假设检验 单正态总体 1、 方差已知时,检验均值是否为 u0: 没有现成的函数,需编: 2、 方差未知时,检验均值是否为 mu:
salt&-c(490,506,508,502,498,511,510,515,512) #输入 salt t.test(salt,mu=500) #求 t-检验 3、 均值未知,检验方差是否为 sigma0: 没有现成函数,需要现编 双正态总体 1、 两方差已知,检验均值相同 u1=u2: 没有现成函数,需要现编 2、 两方差未知但相等,检验均值相同 u1=u2: x&-c(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9) y&-c(20.7,19.8,19.5,20.8,20.4,19.6,20.2) t.test(x,y,var.equal=TRUE) 3、 两方差未知不等,检验均值相同 u1=u2: t.test(x,y,var.equal=FALSE) 4、 两均值未知,求方差比的 F 检验: x&-c(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9) y&-c(20.7,19.8,19.5,20.8,20.4,19.6,20.2) var.test(x,y) 5、 成对数据的 t-检验: x&-c(20.5,18.8,19.8,20.9,21.5,19.5,21.0,21.2) y&-c(17.7,20.3,20.0,18.8,19.0,20.1,20.0,19.1) t.test(x,y,paired=TRUE) #输入 x #输入 y #求 t-检验 #求 t-检验 #输入 x #输入 y #求 F-检验 #输入 x #输入 y #求成对数的 t-检验 单总体比例的检验 A) 精确检验 binom.test(c(7,5),p=0.4) #抽 12 件发现 7 件次品,问次品率为 0.4 是否成 立 B) 近似检验 prop.test(7,12, p=0.4,correct=TRUE) #抽 12 件发现 7 件次品, 问次品率为 0.4 是否成立 两总体比例的检验 sucess&-c(23,25) total&-c(102,135) prop.test(sucess, total) 方差分析 A) 单因子方差分析 #被调查的男、女生家中有计算机的比例 #被调查的男、女生人数 #求两者比例是否一致
因素 A1 A2 A3 A4 A5 A代表销售方式 销售方式与销售量 销售量数据 25.6 22.2 28 24.4 30 29 25 27.7 23 28.8 28 31.5 20.6 21.2 22 29.8 27.5 32.2 25.9 21.2 A&-factor(rep(1:5,each=4)) #对应因子的不同水平输入 A miscellany&-data.frame(x,A) #建立数据集 miscellany aov.mis&-aov(x~A,data=miscellany) #方差分析 summary(aov.mis) #导出方差分析表 plot(miscellany$x~miscellany$A) #作出不同水平的比较图 pairwise.t.test(x,A,p.adjust.method=&none&) # 多重 t-检验,第一类错误不调 整,调整的话,可以用默认的 holm,或 bonferroni 等 方差齐性检验-levene 检验 library(car) leveneTest(x,A) #检验方差是否齐性,即各变量方差是否一致 B) 双因子方差分析 I) 无交互作用的方差分析 果汁含铅比测试 因素 B1 B2 B3 B4 0.05 A1 0.46 0.12 A2 0.08 0.38 0.4 A3 0.11 0.43 0.05 A4 0.11 0.44 0.08 A:四种检测方法 B:6种不同果汁 B5 0.16 0.1 0.1 0.03 0.84 0.92 0.94 0.93 B6 1.3 1.57 1.1 1.15 juice&-data.frame( X=c(0.05,0.46,0.12,0.16,0.84,1.30,0.08,0.38,0.40,0.10,0.92,1.57,0.11,0. 43,0.05,0.10,0.94,1.10,0.11,0.44,0.08,0.03,0.93,1.15), A=gl(4,6), B=gl(6,1,24) ) #其中 gl(4,6)是设因子函数, 4 表示 4 个水平, 6 表示重复次数, gl(6,1,24)是设因子函数,6 表示 6 个水平,1 表示重复次数,24 表示 结果的长度 juice.aov&-aov(X~A+B,data=juice) summary(juice.aov) II) 有交互作用的方差分析 #无交互作用的双因素方差分析 #提取方差分析表
老鼠存活时间(年)的实验报告 因素 I II III 0.31 0.43 0.38 0.44 0.22 0.23 A B #### #### 0.43 0.82 #### #### 0.76 0.45 #### #### 0.23 0.92 #### #### 0.40 0.56 #### #### 0.23 0.30 #### #### 0.22 0.30 C D #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### A、B、C、D为四种治疗方案,I、II、III为三种毒药 rats&-data.frame( Time=c(0.31,0.45, 0.43,0.45, 0.46,0.43, 0.63,0.76,0.82,1.10, 0.45,0.71,0.88,0.72, 0.66,0.62, 0.38,0.29, 0.44,0.35,0.40,0.23, 0.31,0.40,0.92,0.61, 0.56,1.02, 0.49,1.24, 0.71,0.38, 0.22,0.21, 0.23,0.25, 0.18,0.23, 0.24,0.22,0.30,0.37,0.30,0.36, 0.38,0.29,0.31,0.33), Toxicant=gl(3,16,48,labels=c(&I&,&II&,&III&)), Cure=gl(4,4,48,labels=c(&A&, &B&, &C&, &D&)) ) op&-par(mfrow=c(1,2)) #画图区域分为两块 plot(Time~Toxicant+Cure,data=rats) #作毒药和治疗方案各自的效 应分析 with(rats,interaction.plot(Toxicant,Cure,Time,trace.label=&Cure&)) # 治 疗方案的交互效应图 with(rats,interaction.plot(Cure, Toxicant,Time,trace.label=&Toxicant&)) #毒药的交互效应图 rats.aov&-aov(Time~Toxicant*Cure,data=rats) 素方差分析 summary(rats.aov) #提取方差分析表 # 有交互作用的双因 相关性检验 新生儿脐带血促甲状腺激素(TSH)水平是评价人群碘营养状况的重要指标, 国际卫生组织明确新生儿全血 TSH&=5mU/L 者为碘营养状况正常 10名孕妇的15-17周及分娩时脐带血TSH(mU/L) 母血X 1.21 #### 1.39 #### 4.20 1.42 4.83 #### 1.56 #### 4.93 1.68 4.32 #### 1.98 #### 4.70 #### #### 脐带血Y 3.90 x&-c(1.21,1.30,1.39,1.42,1.47,1.56,1.68,1.72,1.98,2.10) y&-c(3.90,4.50,4.20,4.83,4.16,4.93,4.32,4.99,4.70,5.20) level&-data.frame(x,y) #产生数据集 plot(level) #画散点图 cor.test(x,y) #相关系数检验 一元线性回归 #母血 TSH 值 #脐带血 TSH 值
企业编号 1 2 3 4 5 6 7 8 9 10
感觉不错的话,微信扫一扫关注官方微信公众账号,以后找资料更方便
是互联网分享学习的开放平台,汇集亿份高价值的文档资料,涵盖档下载,程序开发文档,教育文档,医药文档,办公文档,考试文档,营销文档,工程文档,分享文档等行业。为您提供愉悦的分享学习体验。
R语言学习详解
你可以免费下载该文档
没满足你的要求? 查找更多相关内容

我要回帖

更多关于 numpy matrix list 的文章

 

随机推荐