语言学习之读写文件"/>
R语言学习之读写文件
R语言学习之读写文件
一、获取数据
R获取数据三种途径
1、利用键盘来输入数据
> patient <- c(1,2,3,4) > admdte <- c("10/15/2009","11/01/2009","10/21/2009","10/28/2009") > age <- c(25,34,28,52) > diabetes <- c("Type1","Type2","Type1","Type1") > status <- c("Poor","Improved","Excellent","Poor") > data <- data.frame(patient,age,diabetes,status) > datapatient age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type1 Excellent 4 4 52 Type1 Poor
同时也可以利用edit()函数直接输入
> data2 <- data.frame(patient=character(0),admdte=character(0),age=numeric(),diabetes=character(),status=character()) > data2 <- edit(data2)
除此之外,还可利用fix()函数直接修改,可直接保存
fix(data2)
2、通过读取存储在外部文件上的数据(暂略)
3、通过访问数据库系统来获取数据
1)通过ODBC访问数据库
install.package("RODBC")
二、读入文件
1、读取本地文件
read.table(file, header = FALSE, sep = “”, quote = “”’",
dec = “.”, numerals = c(“allow.loss”, “warn.loss”, “no.loss”),
row.names, col.names, as.is = !stringsAsFactors,
na.strings = “NA”, colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = “#”,
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = “”, encoding = “unknown”, text, skipNul = FALSE)
- file:文件名
> x <- read.table ("input.txt") >head(x) >tail(x) #查看头或尾部,默认为6行,也可加参数 >head(x,n=10)
- sep 设置分隔符
> x <- read.table ("input.csv",sep=",")
header 是否将第一行视为变量名称,是设为T,否则为F
skip 跳过内容
> x <- read.table ("input 1.txt",sep=",",header = T,skip = 5)
- nrows 读取行数
x <- read.table ("input.csv",sep=",",header = T,nrows = 100) x <- read.table ("input.csv",sep=",",header = T,skip = 50,nrows = 100)
- ns.strings 将缺失值替换为NA
x <- read.table ("input.csv",sep=",",header = T,skip = 50,nrows = 100, na.strings = " ")
- stringAsFactors 控制字符串是否转换为因子,不需要时设为false
其他函数
read.csv(file, header = TRUE, sep = “,”, quote = “”", dec = “.”, fill = TRUE, comment.char = “”, …)
read.csv2(file, header = TRUE, sep = “;”, quote = “”",dec = “,”, fill = TRUE, comment.char = “”, …)
read.delim(file, header = TRUE, sep = “\t”, quote = “”",dec = “.”, fill = TRUE, comment.char = “”, …)
read.delim2(file, header = TRUE, sep = “\t”, quote = “”",dec = “,”, fill = TRUE, comment.char = “”, …)
2、读取网络文件
文件在局域网内的地址
x <- read.table("", header = TRUE)
读取HTML内的表格
需要安装XML包
install.packages("XML") ?readHTMLTable
readClipboard() 读取剪切板文件
readLines() 按行读取文件
x <- readLines("input.txt",n=100)
scan() 按单元读取数据
x <- scan("scan.txt",what=list (character(3),numeric(0),numeric(0)))x <- scan("scan.txt",what=list (X1=character(3),X2=numeric(0),X3=numeric(0)))
三、写入文件
write.table()
- x 写入的数据
- file 要写的文件
- sep 分隔符
- row.names=False 不会将R语言添加的行号写入文件
- quote = False 不需要双引号
- na 调整缺失值
- append 是否追加写入,若为否可能覆盖原文件
- gzfile (newfile.csv.gz) 生成压缩文件
write.table (x,file=newfile.txt)
write.table (x,file=newfile.csv,sep="\t")
write.table (x,file=newfile.csv,sep="\t",quote=FALSE,append=FALSE,na="NA")
write.table (x,file=gzfile (newfile.csv.gz),sep="\t",quote=FALSE,append=FALSE,na="NA")
library(foreign)
write.arff()
四、读写Excel文件
1、另存为csv文件后利用read.csv()读取
2、复制到剪切板后利用readClipboard()读取
3、利用XLConnect包
读
install.package(XLConnect)
library(XLConnect)#Two step Read Excel File
ex <- loadWorkbook("data.xlsx")
readWorksheet(ex,1) #1代表第一个工作表,以此类推
edata <- readWorksheet(ex,1,startRow=0,starCol=0,endRow=50,endCol=3)#One step Read Excel File
readWorksheetFromFile ("data.xlsx",1,startRow=0,starCol=0,endRow=50,endCol=3,header=TRUE)
写
1)、四步法写文件
#Four step Wtire Excel File
wb <- loadWorkbook("file.xlsx",create=TRUE) #创建一个文件
createSheet(wb,"Sheet 1") #创建工作表
writeWorksheet(wb,data=mtcars,sheet = "Sheet 1") #写入文件
saveWorkbook()
2)、一步写文件
#One step Wtire Excel File
writeWorksheetToFile("file.xlsx",data = mtcars,sheet = "Sheet 1")vignette("XLConnect") #查看XLConnect包帮助文档
4、利用xlsx包读写
install.packages("xlsx")
library(xlsx)
rdata <- read.xlsx("data.xlsx",n=1,startRow = 1,endRow = 100)
write.xlsx(rdata,file = "rdata.xlsx",sheetName = "Sheet 1",append = F)
help(package="xlsx")
五、读写R格式文件
1、RDS文件
saveRDS(iris,file="iris.RDS")
rdsdata <- readRDS("C:/Users/wangtong/Desktop/RData/iris.RDS")
2、RData文件
#Write RData file
load(file = "C:/Users/wangtong/Desktop/RData/Ch02.R")
save(iris,iris3,file = "iris.Rdata")
save.image()
veRDS(iris,file=“iris.RDS”)
rdsdata <- readRDS(“C:/Users/wangtong/Desktop/RData/iris.RDS”)
### 2、RData文件```R
#Write RData file
load(file = "C:/Users/wangtong/Desktop/RData/Ch02.R")
save(iris,iris3,file = "iris.Rdata")
save.image()
更多推荐
R语言学习之读写文件
发布评论