[R语言基础]——数据的输入
- 一、从带分隔符的文本文件导入数据
- 函数read.table()的选项
- 二、导入Excel数据
- 三、导入SPSS数据
- 四、导入SAS数据
- 总结
一、从带分隔符的文本文件导入数据
read.table()
此函数可读入一个表格形式的文件并将其保存为一个数据框。
mydataframe<-read.table(file,options)
#file是一个带分隔符的AScII文本文件,options是控制如何处理数据的选项
函数read.table()的选项
选项 | 描述 |
header | 表示是否在第一行包含了变量名的逻辑型变量。header=TRUE |
sep | 分开数据值的分隔符 |
row.names | 用于指定一个或多个行标记的可选参数 |
col.names | 若文件第一行不包括变量名(header=TRUE),可以用col.names指定一个包含变量名的字符向量。若header=FALSE以及col.name都被省略,变量则被命名为v1,v2,… |
na.strings | 用于表示缺失值的字符向量。如:na.strings=c("-9","?")把-9和?转换为NA |
colClasses | 分配到每一列的类向量。如:colClasses=c(“numeric”,“numeric”,“character”,“NULL”,“numeric”) |
skip | 跳过行的数目 |
stringsAsFactors | 逻辑变量,标记处字符向量是否要转化为因子。默认为TRUE |
text | 指定文字进行处理的字符串,若text设置了,file应该留空 |
grades<-read.table("studentgrades.csv",header=TRUE,row.name="StudentID",sep=",")
read.table()默认将字符变量转化为因子,可用staringsAsFactors=FALSE对所有字符变量去掉这个行为,或用cloClasses对每一列指定一个类(逻辑型、数值型、字符型、因子型)
grades<-read.table("studentgrades.csv",header=TRUE,row.name="StudentID",sep=",",colClasses=c("character","character","character","numeric","numeric","numeric"))
二、导入Excel数据
- 可在Excel中将.xls文件导出为逗号分隔文件.csv,再利用上述方式导入到R中。
- read.xlsx() 导入一个工作表到一个数据框中。如:read,xlsx(file,n) file是Excel工作簿所在路径,n为要导入的工作表序号。
library(xlsx)
workbook<-"c:/myworkbook.xlsx"
mydataframe<-read.xlsx(workbook,1)
#从C盘茛目鲤导入第一个工作表,并将其保存为一个数据框mydataframe
三、导入SPSS数据
- read.spss()
- Hmisc包中的spss.get()函数
install.packages("Hmisc")
library(Hmisc)
mydataframe<-spss.get("mydata.csv",use.value.labels=TRUE)
#use.value.labels=TRUE表示让函数将带有值标签的变量导入为R中水平对应相同的因子
四、导入SAS数据
有几种需要SAS运行程序的方法此处不赘述了。若没有连接SAS的路径,可通过函数read.sas7bdat()
library(sas7bdat)
mydata<-read.sas7bdat("C:/mydata/clients.sas7bdat")
总结
总之,我们最常用的导入数据到R中的方式便是从带分隔符的文本文件导入数据,需要多加注意read.table()函数的选项使用。