R语言学习详解 下载本文

给出数据集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(\cylinders\cylinders\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) #从内存中清除数据集mtcars q() #退出R

改变内存变量

name<-\ #定义内存变量 ls() #显示所有定义的内存对象 ls(pat=\ #显示内存中含m的指定对象

ls(pat=\ #显示内存中打头字为m的指定对象 ls.str() #显示内存中所有对象的详细信息 rm(x,y) #从内存中删除对象x与y rm(list=ls()) #从内存中删除所有对象

rm(list=ls(pat=\ #从内存中删除所有打头字为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(\a<-factor(a)

数值型向量转换为因子 b<-c(1,2,3,1) b<-factor(b)

字符型因子转换为数值型因子

a<-c(\a<-factor(a)

levels(a)<-c(1,2,3,4) 参考类似

b<-factor(c(\数值型因子转换为字符型因子 b<-c(1,2,3,1) b<-factor(b)

levels(b)<-c(\参考

ff<-factor(1:3,labels=c(\

提取向量中的元素

x<-seq(1:100) #建立1:100的数据向量,存入x x[1:10] #提取x的前10个元素 x[c(1,4)] #提取x的第1和第4元素

y<-x[-(6:10)] #去除向量中与索引向量对应的元素

提取逻辑向量

x<-c(42,7,64,9) #产生数值向量x

x>10 #产生x>10是否成立的逻辑向量 x[x>10] #取x>10的值

x[x<40&x>10] #取x<40且x>10的值

x[x>10]<-10 #修改x中所有满足条件的数据为10

y=runif(100,min=0,max=1) #产生0-1上的100个均匀分布的随机数 sum(y<0.5) #求小于0.5的元素的个数 sum(y[y<0.5]) #求小于0.5的元素的和

y<-x[!is.na(x)] #求出x中的非缺失值放入向量y中

z<-x[(!is.na(x))&(x>0)] #求出x中的大于零的非缺失值放入向量z中

建立数组

array(data,dim,dimnames)

A<-array(a,dim=c(3,4,2)) #以a中数据建立维数为(3,4,2)的数组A

具体例子

A<-array(1:8,dim=c(2,2,2)) #建立一个2x2x2的数组,里面放置1到8 dim(A) #求出A的维数

dimnames(A)<-list(c(\ #定义数组中向量名 colnames(A) #A的列变量名 rownames(A) #A的行变量名

建立矩阵

A<-array(1:6,c(2,3)) #建立2行3列矩阵A,用1-6填入 A<-array(1:4,c(2,3)) #如果数据不够,自动循环

A<-array(1: 8,c(2,3)) #建立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(\ #定义行名 colnames(X)<-c(\ #定义列名 dim(X) #求出行列数 dimnames(X) #求出行列别名

X<-matrix(1:4,2,4) #按列填入,不够再次循环 X<-matrix(1:4,2,4,byrow=TRUE) #按行填入,不够再次循环