R软件使用简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R模拟著名的统计软件:S-PLUS。两者语法基本相同,有些功能R少一些,例如:S-PLUS有菜单而R没有,不过,
R也正在开发菜单系统。
对于windows系统,下载R的安装程序:setupR.exe。安装后,运行安装目录的bin子目录下的Rgui.exe,即运行R。R打开后界面简洁,它没有做数据分析用的菜单系统,我们所有的分析工作都是在程序窗口中输入程序来完成。你会看到有一个红色的:>▌,就在这里输入程序。普通模式中,每输入一条语句,回车后就执行。也可以把程序输入在一个文件中,用source函数来调用执行,例如:
source("C:\\work\\pro.txt"),表示调用c盘work目录下的pro.txt文件同时执行其中的R程序,请注意文件路径的写法。
基本语法:
R的变量名一般是由字母开头的,其后可有数字,下划线不可以,请注意:R的变量名和命令是区分大小写的。
R中用-> 和<- 来进行赋值,这两个符号功能一样,只是方向不同。例如:15->x 表示把值15赋值给变量x ,用x<-15 ,效果是一样的。例如:10->x ,表示把10赋值于x,数值变量;“www”->y ,表示把字符串”www”赋值于y,
字符变量。
数据输入:
c(12,14,16,33)->x 表示把一个向量(12,14,16,33)赋予变量x。简单的就可以理解为x是一个数值变量,目前有数据12,14,16,33。用求均值函数mean()就可以求其平均数:mean(x),系统会输出18.75。类似的,sd(x)输出标准差
9.64,median(x)则输出中位数15。
c(''tr'',''tsed'',''ddd'')->y 此时y是一个字符串的向量,可以理
解为y是一个字符变量。
采用data.frame(x,y)可以把x和y这两个变量组合为一个二维数据集。如:data.frame(x,y)->z 表示z包含了x和y变量,类似一个数据集。你键入z 回车,就可以看到它的内容。可以用$ 符号来引用数据集中的变量,例如:
mean(z$x) ,即计算z中的x的均数,得到18.75。
如果有一个输好数据的数据文件,则可以用read.table()函数来读入数据。比如有一个文件c:/test.txt包含了数据。用read.table(''c:/test.txt'',header=T,sep=",")->t。表示读入此文件并保存为t,文件的第一行是变量名(header=T);分隔符是逗号(sep=",")。如果数据集中有一个变量为dd,用t$dd就可以引用dd,如:sd(t$dd)表示计算其标准差。类似的,用
read.epi()函数可以读入epi info数据库,也还有类似函数可以读入stata等常用数据库文件。
统计描述:
采用R函数可以计算描述性统计指标。
算术均数:mean() 例:mean(x)或mean(data$x)
几何均数:exp(mean(log(x))) 采用了函数嵌套,即先取对数log(),然后求平均mean(),再求反对数exp()
中位数:median()
方差:var()
标准差:sd()
假设检验:
T检验:R中采用t.test()函数。
用法:1、t.test(x) 表示对x做总体均数为0的t检验
2、t.test(x,mu=10) 表示做总体均数为10的t检验
3、t.test(x,y) 表示对两个变量x,y做两样本均数的成
组t检验
4、t.test(x~group) 表示group为分组变量,x为数值
变量,做t检验,此时x和y应该在同一个数据集中。
5、t.test(x[group==1],x[group==2]) 表示对group=1
和2时的x做t检验
方差分析:利用lm()函数
如果一个数据集dd中,x是数值变量,g是分组变量,运行:lm(dd$x~dd$g) ,这样实际是拟合一个线性模型,x为应变量,g为自变量。缺省的输出很少,只有g和截据的系数,采用summary()函数可以输出较多信息。即:summary(lm(dd$x~dd$g)) 这样将会输出常见方差分析所需要输出的全部信息,诸位一试便知。
这里提示了R的一个特性:缺省的输出往往是很少的,其实有很多的结果被保存在背后,需要用语句提取出来的。
秩和检验:wilcox.test()函数和kruskal.test()函数
wilcox.test(x) 表示对x做均数为0的符号秩和检
验
kruskal.test(x,g) 表示x为数值变量而g为分组变
量,做秩和检验
卡方检验:chisq.test()
对于如下四格表资料:12 5
24 11
首先建立四格表:matrix(c(12,24,5,11),crow=2)->data
说明:data中存储了四格表资料,也就是一个矩阵。c(12,24,5,11)是一个向量,crow=2表示有两行,请注意行列的顺序:即先排“列”数据,再排“行”数据。
然后进行卡方检验:chisq.test(data)
对于四格表卡方,缺省的用Yates连续性校正。如果用:chisq.test(data,correct=FLASE),则不进行Yates校正。如果理论数过小,则输出时会提示卡方检验可能不正确,此时就需要用fisher精确概率法:fisher.test(data)。
线性相关
采用cor()函数可以计算两变量的线性相关系数;采用cor.test()函数可以计算相关系数比进行假设检验、提供相关
系数可信区间。
例如:c(12,15,13,16,21,22,14)->x
c(25,56,45,15,32,16,45)->y
cor.test(x,y) 即可对x和y进行线性相关分析,计算两者的
相关系数并进行假设检验。
线性回归:
lm()函数可以拟合一般线性模型。例如:lm(y~x+z) 便是拟合应变量为y,自变量为x和z的回归方程。直接使用lm(y~x+z) 只能输出x和z的回归系数,用