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 | 读取以逗号分割的表格 |

浙公网安备 33010602011771号