R语言-数据整形之导入导出
R语言数据导入和导出
前言
福尔·摩斯曾说过:“数据,数据,没有数据的推理是罪恶!”不过比起有意思的统计分析,数据的导入与导出显得十分的无趣,但是不得不说统计分析的数据导入与导出是个让人沮丧的任务,而且耗时巨大。今天分享的是R中数据的输出与一些特定格式的数据读入。
目录
1. 载入特定的数据集
2. 载入某个包中的数据集
3. 文件目录操作
4. 自定义路径和名称
5. 剪切板方式数据导入
6. 常用的读取指令read
7. 通过setwd定义路径
8. 读入R格式的文件
9. 逐行读取数据
10. 数据导出
11. 输入输出函数小结
1. 载入特定的数据集
# 查看数据集列表
data()
# 载入CO2数据集(来自datasets)
data(CO2)
2. 载入某个包中的数据集
# 载入package MASS
library(MASS)
# 查看MASS中数据集
data(package="MASS")
# 载入MASS中的SP500数据集,也可简化为data(SP500)
data(SP500,package="MASS")
3. 文件目录操作
# 返回当前工作目录(一般为默认情况)
getwd()
# 也可以写成setwd("d:\\rdata")
setwd("d:/rdata")
getwd()
4. 自定义路径和名称
# -------------------------
oPath <- "C:/Users/abdata/Desktop/"
oName <- "data.txt" ### data.csv
oPathFile <- paste(oPath,oName,sep="",collapse="")
# -------------------------
oPath <- "C:/Users/abdata/Desktop/"
oName <- "csjwdfw" ### data.csv
oType <- "csv"
oPathFile <- paste(oPath,oName,'.',oType,sep="",collapse="")
# -------------------------
5. 剪切板方式数据导入
# 先将数据复制到剪切板,然后将数据读入到R中
# clipboard即剪切板
data <- read.delim("clipboard")
# 或
data <- read.table("clipboard", header=T)
6. 常用的读取指令read
# 常用的读取指令read
data <- read.table(oPathFile, header=T)
data
data <- read.csv(oPathFile, header=T)
data
7. 通过setwd定义路径
# 通过setwd定义路径
setwd("d:/rdata")
data <- read.table("salary.txt",header=T)
data
data <- read.csv("salary.csv",header=T)
data
# 由于不存在header参数,skip=1说明读取时跳过表示名称的第一行
data <- scan("salary.txt",skip=1,what=list(City="",Work=0,Price=0,Salary=0))
data
8. 读入R格式的文件
# R的数据或更一般的对象(如向量、矩阵、数据框、列表甚至函数等)可以通过save()保存为R专有的文件格式,以Rdata为后缀。要读取这类文件,需要用到函数load()来加载!!!
# load("d:/rdata/salary.Rdata")
setwd("d:/rdata")
load("salary.Rdata")
head(data,5)
9. 逐行读取数据
# 逐行读取数据
con <- file(oPathFile,"r")
f1 = readLines(con, n=1, encoding='UTF-8') # 读文件一行
while(length(f1)!=0){
f1=readLines(con, n=1, encoding='UTF-8') # 读一行
}
close(con)
10. 数据导出
前面介绍数据的导入,这对数据分析固然十分重要,但分析的一些中间过程或结果会产生新的数据集,我们也需要保存起来。根据需要,R中的数据也可以保存为不同格式的文件。
-
使用函数cat()
# 在屏幕上输出 cat(c("AB", "C"), c("E", "F"), "n", sep="") i <- 1:5 # 以逗号为分隔符 cat("i = ", i, "n",sep=",")
-
向指定文件写入数据
#-------------------- cat(c("AB", "C"), c("E", "F"),file="d:/data/cat.txt",sep=".") #-------------------- i = 1:5 # cat(i,file="d:/data/cat.txt",append=TRUE) cat(i,file=oPathFile,append=TRUE) #-------------------- # 分隔符sep="\n"表示换行 # a=file("d:/data/cat.txt") a = file(oPathFile) cat("1 2 3 4 ","2 3 5 7","11 13 15 17", file=a, sep="\n") read.table(a) #--------------------
-
保存为文本文件(write.table)
# write.csv(data,file="d:/data/salary1.csv",row.names=F,quote=F) write.csv(data,file=oPathFile,row.names=F,quote=F) write.table(data,file=oPathFile,row.names=F,quote=F)
-
保存R格式文件
save(data,file="d:/data/salary1.Rdata") load("d:/data/salary.Rdata")
-
保存为其他类型文件
# 保存为sav文件格式 library(foreign) write.foreign(data,datafile="d:/data/salary.sav",codefile="d:/data/code.txt",package="SPSS")
11. 输入输出函数小结
方法名称 | 解释 |
---|---|
library | 加载包 |
data | 加载制定数据集 |
load | 加载save或者save.image保存的数据 |
read.table | 读取表格 |
read.fwf | 以fixed_width_formatted形式读取数据至表格 |
save | 二进制保存指定对象 |
save.image | 二进制保存当前线程内所有对象 |
write.table | 将数据以表格形式写入文本 |
write.csv | 将数据以CSV表格形式写入文本 |
cat | 强制转化为字符后输出 |
sink | 输出转向到指定文件 |
输出屏幕 | |
format | 格式化 |
read.delim | 读取以tab分割个表格 |
read.csv | 读取以逗号分割的表格 |
©哈尔滨商业大学 银河统计工作室
银河统计工作室成员由在校统计、计算机部分师生和企业数据数据分析师组成,维护和开发银河统计网和银河统计博客(技术文档)。专注于数据挖掘技术研究和运用,探索统计学、应用数学和IT技术有机结合,尝试大数据条件下新型统计学教学模式。
邮箱:wanglei@hrbcu.edu.cn 关于我们