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输出转向到指定文件
print输出屏幕
format格式化
read.delim读取以tab分割个表格
read.csv读取以逗号分割的表格
posted @ 2016-06-23 11:09  银河统计  阅读(2585)  评论(0编辑  收藏  举报