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)
> data
  patient 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("https://codeload.github.com/mperdeck/LINQtoCSV/zip/master", 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()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值