R:数据读取与管理

来自OBHRM百科
跳转至: 导航搜索

从文本文件读取固定格式的数据

如果您的数据还没有输入计算机,建议直接以txt格式(ASCII)输入数据。可以用Windows系统自带的Edit,或者Editplus、Notepad++输入数据。输入完成后,直接用固定格式读取数据。

示例数据

010103643424242343243334
23333344343244333434444433
33334333343333334433333222
1211316013333114213
010103533434332332 23432
243433334234 3334244434433
43222333332242323343322334
2232323233433336213   06
010103443334442234343434
22444224344342343334443433
43222444443434344444444222
02212011223222132242  10

示例数据说明

所有数据分为四行,具体为:
第一行:company 1-2 group 3-4 num 5-7 item1 to item17 8-24 
第二行:item18 to item43 1-26
第三行:item44 to item69 1-26
第四行:mbi1 to mbi16 1-16 sex 17 age 18 edu 19 manage 20 year 21-22 month 23-24

数据读取方法

mydata <- read.fortran("D:\\01a.txt",list(
c("2F2.0", "F3.0", "17F1.0"),
c("26F1.0"),
c("26F1.0"),
c("20F1.0","2F2.0")))
names(mydata) <-c("company", "group","no",paste("item", 1:69, sep=""),paste("mbi", 1:16,sep=""),"sex","age","edu","manager","year","month")

从文本文件读取自由格式的数据

如果您的数据已经输入到Excel、SPSS等软件,您可以选择将数据另存为以各种分隔符隔开的自由格式文本文件。比如,Mplus提供的示例数据,就全部是以自由格式保存的文本数据文件。然后,用read.table()函数读取,该函数的用法请在R控制台,输入:help(read.table),或? read.table。

mydata <- read.table("c:\\program files\\mplus\\mplus examples\\user's guide examples\\ex5.1.dat",sep="") # 读取ex5.1.dat到mydata(自定名称),注意目录;sep=""表示分割符可以是一个或多个空格、制表符、换行或回车。
names(mydata) <-c(paste("item", 1:6, sep=""))       # 为变量命名,6个变量从item1到item6,如果在文本文件中第一行有变量名,就不需要再命名

从CSV文件读取数据

可以用read.csv()函数来读取;另外,csv格式文件的数据相等于用“,”分隔的自由格式文本文件数据,同样可以用read.table()函数读取。

# 用read.csv()函数读取
mydata <- read.csv("http://stats.idre.ucla.edu/wp-content/uploads/2016/02/test-1.csv", header=T) # 用read.csv()读取csv数据
print(mydata)                                                                                    # 显示数据
# 用read.table()函数读取
mydata <- read.table("http://stats.idre.ucla.edu/wp-content/uploads/2016/02/test-1.csv", header=T,sep=",") # read.table()读取csv数据
print(mydata)                                                                                              # 显示数据

读取Excel数据

读取Excel数据相对复杂,最简单的做法就是将Excel文件另存为.csv文件或者.txt问卷,然后读入;如果不希望另存为其他格式,则可以xlsx等包读取。

# 以xlsx包为例,读取Excel文件。了解read.xlsx()函数的用法,可以在R控制台输入:?read.xlsx
library(xlsx)                                         # 启用xlsx包,用之前请先安装,安装方法:在R控制台,输入:install.packages("xlsx")
mydata <- read.xlsx("d:\\electric.data.for.r.xls",1)  # 读取数据。请先从http://personality-project.org/r/datasets/electric.data.for.r.xls下载Excel文件到D盘根目录

读取SPSS、SAS、Stata等的数据文件

读取SPSS、SAS、Stata等的数据文件,可以用foreign包中的函数。读取SPSS数据文件对应的函数是:read.spss();读取SAS数据文件对应的函数是:read.ssd();读取Stata数据文件对应的函数是:read.dta()。foreign包还包括读取Epi Info,Minitab,S等数据的函数,请参考foreign的手册。

# 用foreign包中的read.spss()读取SPSS数据文件。了解read.spss()函数的用法,可以在R控制台输入:?read.spss
library(foreign)                                            # 启用foreign包,用之前请先安装,安装方法:在R控制台,输入:install.packages("foreign")
mydata <- read.spss("d:\\abcd.sav",use.value.labels=FALSE)  # 读取数据。请将自己准备尝试的数据保存在D盘根目录,并调整文件名

也可以采用memisc来读取SPSS数据

library(memisc)    # 启用memisc包,用之前请先安装,安装方法:在R控制台,输入:install.packages("memisc")
mydata <- data.frame(as.data.set(spss.system.file('d:\\abcd.sav')))

另外,还有Hmisc包也可以读取这些数据文件。