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(\ #建立字符向量x
wag<-data.frame(weight,age=x) #构建数据集,变量数据长度不同时,会自动循环填充数据
x<-1:4; y<-2:4 #建立数据向量x,y
data.frame(x,y) #若变量长度不是一个周期,则出现错误 2、从外部数据文件读取
foo<-read.table(file=\
适用于数据集的函数:
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(\等价于上述命令Puromycin[c(1,3,5),c(1,3)] Puromycin[c(1,3,5),] #提取数据集的第1、3、5行观测值,所有列 Puromycin$conc #等价于Puromycin[,1],提取变量为conc的那列值
subset(Puromycin,state==\ #提取满足条件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(\ #建立数据集 1、 保存为简单的文本文件
write.table(d,file= \ #这里quote表示变量名不放入双引号中
2、 保存为csv格式的文本文件
write.csv(d,file= \3、 保存为R格式文件
save(d,file= \保存工作空间映像
save.image() #等价于下式
save(list=ls(all=TRUE),file=\
数据的读取
1、 使用函数read.table()
setwd(\ #设置程序自动访问目录
HousePrice<-read.table(file=\2、 使用函数scan()
函数scan()比read.table()更灵活,可以指定变量的类型。另外,scan()可以创建不同的对象:向量、矩阵、数据集、列表等。
mydata<-scan(\3、 使用函数read.fwf()
读取指定宽度格式的数据
mydata<-read.fwf(\4、 读取Excel数据
1) 从剪贴板读入数据。先将Excel的文件中的数据部分选择复制到剪贴板(ctrl+c),然
后用R读入
mydata<-read.delim(\2) 使用程序包RODBC
安装程序包RODBC 在R中,按步骤“程序包-安装程序包-选取CRAN镜像服务器(可选北京的)-RODBC”
library(RODBC) #加载程序包RODBC
z<-odbcConnectExcel(\ #打开Excel文件
foo<-sqlFetch(z,\ #选择Sheet1工作单数据读入foo close(z) #关闭Excel文件
R中数据集的读取
1) R的标准数据datasets
R自身包含了一个有100多个数据集的数据集包datasets,随着R一次性自动载入。 列出全部数据集 data()
用数据集名显示数据
Puromycin
2) 专用程序包中的数据集
读取其他已安装的专用程序包中的数据,可以使用package参数
data(package=\ #列出程序包pkname中的数据集,这里pkname只是一个已安装的程序包的代表
data(dataname,package=\ #载入程序包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==\ #选出性别为雌的负鼠数据放入fpossum中 par(mfrow=c(1,2)) #作图区域一分为二,一行两列 attach(fpossum) #加载数据集
hist(totlngth,breaks=72.5+(0:5)*5,ylim=c(0,22),xlab=\length\at 72.5,77.5,...\ #画直方图
hist(totlngth,breaks=75+(0:5)*5,ylim=c(0,22),xlab=\length\at
75,80,...\ #不同点位画直方图 2、茎叶图 stem(totlngth) 3、盒形图
boxplot(totlngth) 4、正态性检验 A)使用QQ图
qqnorm(totlngth,main=\ #画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=\length\ #画直方图 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=\length\ #画直方图
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=\ #画出经验分布函数 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=\
非参数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=\3、三维透视图
persp(z,main=\
数据变换
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[,\ #给出按数据集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各变量的标准差
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库R语言学习详解(2)在线全文阅读。
相关推荐: