完成以上基本工作后就可以创建R的数据集,进行运算和统计分析了。
例1.4.1 我国城市男性儿童身长(cm)、体重(kg)、头围(cm)、胸围(cm)计量表如表1.4.1所示。
表1.4.1 我国城市男性儿童身体量表
以表1.4.1为例,进行表的录入、存储等基本操作。
##以向量型式录入表中内容
年龄-c("出生","1月","2月","3月","4月","5月","6月","8月","10月","12月","18月","25月","3岁") #赋值号后面的c一定要用小写c,因为第一列是字符型向量,所以每个元素都要用半角双引号包含,元素之间的“,”,必须是半角状态下的,R的向量不作转置都是列向量,这三点说明以下相同不再赘述
身长-c(50.6,56.5,59.6,62.3,64.6,65.9,68.1,70.6,72.9,75.6,80.7,90.4,93.8) #数值向量录入
体重-c(3.27,4.97,5.95,6.73,7.32,7.7,8.22,8.71,9.14,9.66,10.67,12.84,13.63)
头围-c(34.3,38.1,39.7,41,42,42.9,43.9,44.9,45.7,46.3,47.3,48.8,49.1)
胸围-c(32.8,37.9,40,41.3,42.3,42.9,43.8,44.7,45.4,46.1,47.6,50.2,50.8)
#将向量形式绑定成数据框
#认识数据框的函数表示符号:data.frame()
table1_1-data.frame(年龄=年龄,身长=身长,体重=体重,头围=头围,胸围=胸围)
table1_1#将数据组织成数据框并存放在table1_1中,如表1.4.2所示
表1.4.2 table1_1
#运行结果:
save(table1_1,file="D:/数理统计/数理统计学基于R/example/table 1_1.RData")
#将R数据文件存放于D:/数理统计/数理统计学基于R/example/table 1_1.RData
#将向量形式绑定成矩阵形式
#认识矩阵的函数表示符号:matrix()
#认识按列绑定的函数向量符号:cbind()
matrix1_1-matrix(cbind(身长,体重,头围,胸围),ncol=4)
dimnames(matrix1_1)-l ist(c("出生","1月","2月","3月","4月","5月","6月","8月","10月","12月","18月","25月","3岁"),c("身长","体重","头围","胸围"))
matrix1_1
#运行结果如表1.4.3所示
表1.4.3 children_m
save(matrix1_1,file="D:/数理统计/数理统计学基于R/example/matrix1_1.RData")
#将R数据文件存放于D:/数理统计/数理统计学基于R/example/matrix1_1.RData
1.数据调用
(1)调用已经存放的R格式数据文件
方法一:利用菜单栏中的File菜单命令打开文件夹,即依次单击File→Open File命令,查找并打开所需R数据文件即可,Recent File命令可以打开最近使用的其他格式的文件。
方法二:利用工具栏中的打开文件夹按钮:,查找并打开所需文件。
方法三:使用命令load(“D:/数理统计/数理统计学基于R/example/matrix1_1.RData”),注意路径要用半角引号包含。
以上三种方法都可以读取到R数据文件matrix1_1。
(2)调用、读取.csv格式数据文件
方法一,先利用setwd()更改工作路径后,直接利用read.csv(“文件名”)命令。
setwd("D:/R") #更改工作路径
read.csv("spss1.csv") #直接读取.csv格式文件,但是直接读取包含中文字符的容易出现报错
方法二,指明工作路径。
read.csv("D:/R/spss1.csv")#默认包含列标题
read.csv("D:/R/spss1.csv",header=FALSE)#不包含列标题(列名)
读取完成后就可以对读取的内容进行各种统计分析了。
(3)调用、读取SPSS软件的.sav数据文件
library(foreign)#foreign可以读取由"S""SPSS""Minitab""Stat""Weka"等存储的数据文件
read.spss("D:/R/p054.sav")#调用、读取p054.sav文件
X-read.spss("D:/R/p054.sav")#调用、读取p054.sav文件放在X中
X#运行X可以查看、调用p054.sav中的内容,如表1.4.4所示的
表1.4.4 X
续表
(4)调用、读取Excel数据文件
建议使用read.table(“clipboard”,header=)剪贴板模式读取、调用Excel文件。
X-read.table("clipboard",header=TRUE)#如果不需要列标题可以设置成header=FALSE
X#读取table1_1并存放在X中
以上说明了如何使用R调用、读取几种常用的数据格式,还有其他格式的数据调用在此不再赘述。
2.数据保存
保存数据可以使用save()、write.csv()、工具栏中的按钮以及菜单栏中的File→Save命令和File→Save As命令指明路径格式即可。
3.表格转置
如果需要转置,可以利用t()函数即可。例如,t(table1_1)结果如表1.4.5所示。
表1.4.5 table1_1转置
4.数据排序
如果要对数据集中的数据按一定要求或某个变量的大小顺序进行排序,可以使用以下方法。(www.xing528.com)
方法一,使用order()函数。
d1-table1_1[order(table1_1$体重,decreasing=TRUE),]#decreasing=TRUE按体重降序排列,升序是默认的
d1#运行d1可查看排序结果,如表1.4.6所示
表1.4.6 按体重降序排列
续表
方法二,使用ordered()函数对某一变量进行排序。
方法三,对向量或因子也可以用sort(x,decreasing=FALSE,…)进行排序,升序是默认的,如果变为降序,可以修改函数参数decreasing=TRUE即可。
5.对变量进行分析
load("D:/数理统计/数理统计学基于R/example/table1_1.RData")#加载数据集table1_1
(1)求平均体重
(2)求方差
(3)求标准差
6.矩阵列求和
可将求和结果加到原表中,如下:
rbind(matrix1_1,totals=colSums((matrix1_1[,1:4])))
7.矩阵行求和
矩阵行求和(如果需要)修改一下函数rowSums()即可。
8.矩阵求平均值
利用mean(matrix1_1)可以求矩阵所有数据的平均值,本例并无实际意义。
9.矩阵行/列求平均
利用apply()函数可求行平均或列平均。
apply(matrix1_1,2,mean):这是求列平均,若求行平均只需把函数改写为apply(matrix1_1,1,mean),由于本例求行平均无实际意义,本例不再求它,下同。
综上,apply()函数非常有用,可以对行数据或列数据进行计算。
在实际使用中有时需要对数据框重新编辑,并用编辑后的新数据框覆盖原有数据框,如果不需要覆盖就需要重新命名。
10.给变量重新命名
比如将table1_1中的年龄、身长、体重、头围、胸围分别重新命名为Ages、Heights、Weights、HeadCircumference、ChestCircumference。代码如下:
load("D:/数理统计/数理统计学基于R/example/table1_1.RData")#加载数据集table1_1
library(reshape)#加载包reshape
rename(table1_1,c(年龄="Ages",身长="Heights",体重="Weights",头围="HeadCircumference",胸围="ChestCircumference"))#运行结果如表1.4.7所示,已经将列名进行了修改
表1.4.7 修改列名结果
11.缺失值处理
在实际的问卷调查中有时会遇到缺失值,R给出了处理缺失值的两个非常好的函数,一个是判断是否有缺失值的函数is.na(),另一个是删除缺失值的函数na.omit()。
下面看一个例子。
12.数据转换
在进行数据分析时,有时需要将数据转换为所需要的类型,这时常用转换函数进行转换,比如:as.vector()、as.factor()、as.character、as.data.frame()、as.matrix()。
(1)as.vector()
(2)as.factor()
(3)as.character()
(4)as.data.frame()
d#运行结果如表1.4.8所示
表1.4.8 table1_1$体重
续表
(5)as.matrix()
m#查看运行结果,如表1.4.9所示
表1.4.9 转换为矩阵
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。