3. R获取数据的三种途径、读入文件、写入文件、读写excel文件、读写R文件

b站课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p=1
腾讯课堂(最新,但是要花钱,我花99元😢😢买了,感觉不错):https://ke.qq.com/course/3707827#term_id=103855009
 
本笔记前面的笔记参照b站视频,后面的笔记参考了付费视频
笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容,以及补充了个人理解
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

【补充】文件类型:

在这里插入图片描述

1.R获取数据的三种途径

1️⃣利用键盘来输入数据;
2️⃣通过读取存储在外部文件上的数据
3️⃣通过访问数据库系统来获取数据。

例如有以下数据:
在这里插入图片描述

1.1 键盘输入数据

方式一:

> patientID <- c(1, 2, 3, 4)
> admdate <- 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(patientID, age, diabetes, status)
> data
  patientID 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(patientID=character(0), age=numeric(0),
                    diabetes=character(), status=character())
data2 <- edit(data2)

调用后会显示一个数据编辑器,可以直接在编辑器里输入数据,结果会保存在data2中:
在这里插入图片描述
再调用fix(data2),可以继续进行数据修改。

1.2 读取存储在外部文件上的数据

利用R读取的文件,最好是经过处理的适合R使用的文件。
数据需要进行大量的预处理,最好先利用python进行统计,再将统计结果导入到R软件中进行分析。
具体访问方法在之后会详细讲到。

1.3 访问数据库系统获取数据

通过ODBC访问数据库。ODBC是开放数据库连接Open DataBase Connectivity的简称。
在R中可以通过RODBC包来连接和访问数据库。

install.packages(“RODBC”)  
library(RODBC)
help(package="RODBC")



2.读入文件

2.1 读取本地文件 read.table()

read.table(file , sep , header , skip, nrows, na.strings , stringsAsFactors)

\- file为读取的文件名; 【可以是绝对路径 or 相对路径】
\- sep为文件分隔符;  【默认为空白】
\- 若文件头部为变量名称,则header为TRUE; 【重点,为true时第一行不是数据,而且列名】 

\- skip为跳过文件中某部分内容;  【从第一行开始跳,skip=n ——>表示1~n不用读取】
\- nrows设置读取文件行数;  

\- na.strings:告诉read.table函数哪部分属于缺失值,read.table函数将这部分替换为NA;  
\-stringsAsFactors:R在读取文件时,数字会默认都读取为数值型,但字符串会默认读取为因子类型,
                   若不需要将字符串读取为因子类型,则可设置为FALSE;  
\- ……  

如:
x <- read.table (“input.csv”) 错误
x <- read.table (“input.csv”,sep=“,”) 正确
x <- read.table (“input.csv”,sep=“,”,header = T) 正确 ,第一行为列名

x <- read.table(“input.csv”,sep=“,”,header=TRUE,skip=50,nrows=200):
读取文件input.csv,文件内容以逗号分隔,若文件头部为变量名称,则header为TRUE,读取文件第51行至250行。

head(x , n=10):截取文件头部十行。n默认是六行。
tail(x , n=10):截取文件尾部十行。n默认是六行。
readLines(“input.csv”,n=5):可以直接读取文件中的行数。

read.csv(“input.csv”):直接读取csv文件,默认分隔符为逗号
read.delim():默认分隔符为制表符。

2.2 读取剪贴板

读取系统剪切板上的数据:
x <- read.table(“clipboard” ,seq=“…”)
or x <- readClipboard()


不推荐直接读取网络上的文件 或 直接读取压缩文件



3.写入文件 write.table()

write函数与cat函数类似,只不过cat函数是将数据显示在屏幕上,而write则是写到文件里面。
如:
x <- rivers
write(x,file=“x.txt”)
如果对象是一个数据框,可以使用write.table函数,如果是写入到csv文件,则可以使用write.csv文件。

write.table(x , file , sep , row.names , quote ,append , na)

\- x是需要写入的数据;  
\- file是写入的文件,若没有目录,则默认写在当前工作目录下;  
\- sep是指定的数据分隔符;  
\- 若不需要每次数据写入文件时加上序号,则设置row.names为FALSE;  
\- 默认情况下,write函数会为字符串添加双引号,若不需要,则可设置quote为FALSE;  

\- append参数将文件内容写入相同文件名的文件中,TRUE表示追加到文件结尾,FALSE则表示清空原文件内容再写入;  
\- na参数代表设置缺失值为NA;  

注意:若写入文件是csv,则分隔符最好是逗号,可以将一个数据分为一个单元格。

不推荐:
R不仅支持直接读取压缩文件,也支持直接写成压缩文件。
如: write.table(mtcars,gzfile(“newfile.txt.gz”))
表示将文件压缩为gz格式的压缩包。



4.读取 和 写入Excel文件

简单方法:
1️⃣- 将excel文件转为csv文件读取;
2️⃣- 将excel文件数据内容复制到剪切板中读取。

但是当Excel文件过多时,上面的简单方法用起来就比较麻烦了。R中包含许多直接读取Excel文件的包。

4.1 —————— XLConnect包

XLConnect包:需要配置java的运行环境。

install.packages("XLConnect")   # 安装包
library(XLConnect)   # 导入包,就可以使用

读文件:
1)两步
ex <- loadWorkbook(“data.xlsx”)
edata <- readWorksheet(ex,1) # 表示读取ex表格中的第一个工作表
edata <- readWorksheet(ex,1,startRow=0,startCol=0,endRow=50,endCol=3)

2)一步
readWorksheetFromFile (“data.xlsx”,1,startRow=0,startCol=0, endRow=50,endCol=3,header=TRUE)

写文件:
1)四步
wb <- loadWorkbook(“file.xlsx”,create=T) #创建工作簿
createSheet(wb,“Sheet 1”) #创建工作表sheet1
writeWorksheet(wb,data=mtcars,sheet=“Sheet 1”) #写数据
saveWorkbook(wb) #将工作簿保存为文件

2)一步
writeWorksheetToFile(“file.xlsx”,data=mtcars,sheet=“Sheet 1”)

4.2 —————— xlsx包

install.packages("xlsx")
library(xlsx)

读文件:
x <- read.xlsx(“data.xlsx”,1) #表示读取表格中的sheet1工作表

写文件:
write.xlsx(x,file=“data.xlsx”,sheetName=“Sheet 1”,append=F) #将数据写入表格Sheet1中


5.读写R格式文件

存储为R文件会有很多优势:
R会对存储为内部文件格式的数据进行自动压缩处理,并且会存储所有与待存储对象相关的R元数据。
如果数据中包含了因子、日期和时间或者类的属性等信息,存储为R文件则更加实用。

R格式的文件有两种:RDS 和 RData。
(1) .RDS文件

# iris为内置数据集
saveRDS(iris,file="iris.RDS")

rdsdata <- readRDS("iris.RDS")

(2).RData文件(更复杂,整个项目文件)

> save(iris,iris3,file="iris.Rdata")  
> 
> load("iris.Rdata")

> save.image()  【保存所有】
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值