【R语言】--- 各类数据的导入

通常情况下,我们会在excel中对数据进行预处理,然后将处理好的数据导入R中进行分析、作图。但随着数据源和数据格式的多样化,将多种数据源和数据格式导入R中进行分析、作图显得尤为必要,因为这对于数据分析、作图是最基础的。
R可导入键盘(利用键盘输入)、文本文件、excel、access、spss、sas等各类数据格式。


R可导入数据来源(引自R语言实战)

利用键盘输入

利用R中的edit()函数手动输入数据的文本编辑器:
(1)创建一个空数据框(或矩阵),其中变量名和变量的模式需与理想中的最终数据集一致;
(2)针对这个数据对象调用文本编辑器,输入你的数据,并将结果保存回此数据对象中。

#age(数值型)、gender(字符型)和weight(数值型)
data<-data.frame(age=numeric(0),
           gender=character(0),
           weight=numeric(0))
#edit()函数编辑数据
data<-edit(data)
edit()函数输入数据

函数edit()事实上是在对象的一个副本上进行操作的。若不将其赋值到一个目标,则所有修改将会全部丢失!

导入文本文件

用read.table()从带分隔符的文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。

##使用count.fields处理未知的最大字段数
## 当fill = TRUE时
test1 <- c(1:5, "6,7", "8,9,10")
tf <- tempfile()
writeLines(test1, tf)

read.csv(tf, fill = TRUE) # 1 column
ncol <- max(count.fields(tf, sep = ","))
read.csv(tf, fill = TRUE, header = FALSE,
         col.names = paste0("V", seq_len(ncol)))
unlink(tf)

## “内联”数据集,使用text =
## 请注意,开头和结尾的空行是自动修剪的
read.table(header = TRUE, text = "
a b
1 2
3 4
")

参数sep允许你导入那些使用逗号以外的符号来分隔行内数据的文件。你可以使用sep="\t"读取以制表符分隔的文件。此参数的默认值为sep="",即表示分隔符可为一个或多个空格、制表符、换行符或回车符。

导入excel数据

导入xls,xlsx数据

我习惯用readxl包的read_excel()函数进行导入:

#安装readxl包
install.packages("readxl")
#调用readxl包
library(readxl)
#导入数据
df<-read_excel("相关性(5.20)(2).xlsx")
df
相关性数据

导入csv数据

#读取csv物种数据#
spe <- read.csv("nmds-spec.csv")
spe
物种多度数据

导入spss数据

SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc包中的spss.get()函数。

#安装Hmisc包
install.packages("Hmisc")
#加载Hmisc包
library(Hmisc)
data<-spss.get("3年平均地上生物量单因素方差分析数据排列.sav", use.value.labels = T)
data
地上生物量数据

use.value.labels=TRUE表示让函数将带有值标签的变量导入为R中水平对应相同的因子。

导入sas数据

R中设计了若干用来导入SAS数据集的函数,包括foreign包中的read.ssd()和Hmisc包中的sas.get()。这里我们使用sas7bdat包的read.sas7bdat()函数进行导入sas数据。

#仅供参考,我没有运行成功 
read.sas7bdat("http://www.cdc.gov/nchs/tutorials/Dietary/Downloads/osteo_analysis_data.sas7bdat")
image.png

参考文献

Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容