文件的读写20230204

2023-02-13 15:59:25     来源:腾讯云     编辑:bj001    

一、csv的打开方式

a)默认:excel

b)记事本


(相关资料图)

c)适用大文件:sublime

d)R语言 >read.csv(" ") 注意文件的位置,选择相对路径还是绝对路径

二、文件的读入与导出

(1)文件读入

1⃣️ 常用于读取csv格式:read.csv(" " )

2⃣️ 常用于读取txt格式: read.table(" " )

ps(相关读取文件代码的比较):

read.table(file, header = FALSE, sep = "", quote = "\"" ...). 默认没有标题,分隔符是空格 read.csv(file, header = TRUE, sep = ",", quote = "\" ...)。 默认有标题,分隔符是“,”read.csv2(file, header = TRUE, sep = ";", quote = "\" ...) 默认有标题,分隔符是“ ;”read.delim(file, header = TRUE, sep = "\t", quote = "\" ...) 默认有标题,分隔符是“\t”(制表符)

(2)文件导出

1⃣️ 导出csv格式: write.csv(要导出数据框的变量名, file=" example.csv"). example是自己设置的名称

2⃣️ 导出txt格式:write.table(要导出的变量名,file="example.txt")

⚠️注意事项:导出文件时命名最好不要与原文件相同,不然会覆盖,导致原始数据丢失

(3)特殊文件的保存和加载: Rdata

‼️Rdata保存的是变量信息,不是文件!!因此不能x=load("example.Rdata"),变量不能被赋值给其他变量。

保存:save(test,file="example.Rdata)

加载:load("example.Rdata")

总结:

1).R 是脚本文件

2).Rdata 是变量信息

3).Rproj 是包括路径

三、保留列名和行名

保留列名:header=T, 表格自带的列名会变成真正的列名。

ex1<-read.table("ex1.txt")
ex1<-read.table("ex1.txt",header=T)

保留行名:row.names=1,行名也会自动变成真正的行名

ex2 <- read.csv("ex2.csv")
ex2 <- read.csv("ex2.csv",row.names = 1,check.names = F)

ps: check.names=F 使行名与原始一致。

⚠️注意事项:当使用row.names=1时,行名不允许重复

> rod = read.csv("rod.csv",row.names = 1)Error in read.table(file = file, header = header, sep = sep, quote = quote,  :   duplicate "row.names" are not allowed> rod = read.csv("rod.csv")> View(rod)
列名重复,故不能使用row.names=1

四、不完整表格的读入

> soft <- read.table("soft.txt") #报错是表格有一列没有值Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :   line 2 did not have 5 elements

报错显示:表格第二行没有五个元素,那为什么没有五个元素会报错呢?可以先用excel打开文件看一下

发现果然是从第二行开始第五列都没有数据
> soft <- read.table("soft.txt",header = T,fill = T)

通过搜索发现了fill=T 这个函数,可以在有缺失值的情况下正常读入文件。

但是从826行开始我们发现读入的数据与原表不符合。
原表(空出一列)

因此可以得知,fill=T虽然可以读入文件,但是也会导致“问题文件”的读入错误,因为它的默认值是sep=" ",会把一整个空格认为也是分隔符,导致第五列的内容被错误的放入了空着的第四列。

>soft2 <- read.table("soft.txt",header = T,sep = "\t")>View(soft2)
加上sep="\t",只会识别一个制表符作为分割,因此可以识别空列

总结:用于读取/导出文件的R包

base包(常用):

read.table() read.csv() read.delim()

write.table() write.csv()

(以下读的速度比较快,适用于大文件)

readr包:

read_table() read_csv() read_tsv()

write_table() write_csv()

(看看read_csv的用法)

> library(readr)> read_csv("ex2.csv")
发现read_csv给出了一些数据框的概况
发现数据类型也变成双精度浮点数,保留了小数点一位

data.table包:

fread()

1) 非常方便,可以准确读取一些“问题文件”,例如刚刚有缺失空列的soft.txt,最好带上参数 data.table=F,可以确保产生干净的数据框。

> soft_1<-data.table::fread("soft.txt",data.table = F)

(非常方便,不需要乱七八糟的参数,可以读出复杂的文件)

rio包:

1) import() 可以读入一些后缀不正确的包

eg:首先设置了一个txt文件并把后缀改成mp4,使用普通音频文件打开方式会失败。

分别使用read.table 和read.csv 读取,都可以读取但出现了warning

接下来就可以使用import()函数!!

> import("xh.mp4")Error: Format not supported  #但是直接import出现了Error,考虑需要加一个参数
> import("xh.mp4",format = " ")Error: Format not supported   #课上小结老师开始使用的format参数设置为空格也报错了> import("xh.mp4",format = "\t")  #但是使用"\t"就成功了 V1         V2 1 gjl 2018150012 2 ljh 2017153034
> import("xh.mp4",format = ";")   V1         V21 gjl 20181500122 ljh 2017153034> import("xh.mp4",format = "|")   V1         V2 1 gjl 2018150012 2 ljh 2017153034  > import("xh.mp4",format = ",")    V1         V2  1 gjl 2018150012  2 ljh 2017153034

(根据帮助手册,发现好像";" "|" "," 都可以使用,但是会不会和我之前设置文档分割是空格有关,因此我又把文档的分隔换成";"

重新设置分隔为“;”

⚠️⚠️发现原本的分隔符确实可以原原本本的展现,由此可得format的参数可以为“,”(逗号),“|”(管道符),“;”(分号),“\t”(制表符)

2) import_list() 可以读取一个带有多个工作簿的表格文件

>a<-import_list("example.xlsx")>a$sheet1  #可以通过$sheet读取这个表格文件的不同工作簿

3)export() 可以把一个由多个数据框组成的列表输出为带有多个工作簿的表格文件

ps:如果单个数据框导出,可以把后缀改成.csv.

关键词: 文件存储 HTML 编程算法

相关新闻
相关新闻
v 南宁市市区普通高中招生计划重磅出炉,速来查看! 2023-07-08
v 股票行情快报:皖新传媒(601801)7月7日主力资金净卖出2869.70万元 2023-07-08
v 推荐福彩3D第2023178期晒票 激发我们更加勇敢地追求幸福生活 2023-07-07
v 珠江水运关键指标快速增长 2023-07-07
v 真相 | “经济胁迫”是美国手中杀人的“刀” 2023-07-07
v 微单相机推荐2013_微单相机推荐2013 2023-07-07
v 多样化种植技术模式助甘肃河西区域保障粮食安全_微头条 2023-07-07
v 教育部部署做好2023年中小学暑期安全工作 世界球精选 2023-07-07
v 泽连斯基将访问土耳其会见埃尔多安,克宫:密切关注会谈结果 2023-07-07
v 1至6月四川公路水路交通建设完成投资1445亿元,同比增长27% 2023-07-07
v 蚂蚁基金被罚7368万元,总经理林思思被罚15万元 2023-07-07
v 主城都市区仍是主阵地!重庆市新增1366家“专精特新”企业  2023-07-07
v 好消息!西南地区首个百兆瓦级电网侧独立储能电站正式并网运行 2023-07-07
v 首批确定20所!重庆市全面启动市级清廉学校试点示范建设工作 2023-07-07
v 江苏:无锡开出“百万价码”引育宣传文化人才 2023-07-07
v 点赞!湘江新区高校毕业生就业工作在全国作典型交流 2023-07-07
v 两市主力资金净流出230亿元 非银金融等行业实现净流入 2023-07-07
v 同比增长8% 长安1-6月销量超120万辆 2023-07-07
v 【风口解读】红蜻蜓上半年净利预增超66%,去年同期基数低下滑超19% 2023-07-07
v 因违规参与银行保险机构业务活动等 蚂蚁集团被罚没超37亿元 2023-07-07
v 金融管理部门对蚂蚁集团罚没71.23亿元,要求关停“相互宝”业务 2023-07-07
v 中国中免上半年实现营收358.58亿元 净利润38.64亿元 2023-07-07
v 头条焦点:用心守护群众生命安全——重庆市万州区群众避险转移一线见闻 2023-07-07
v 上汽集团:第二季度整车销量环比增长32.5% 2023-07-07
v 横店东磁预计上半年实现归母净利11.8亿元至12.6亿元 光伏产业盈利同比实现翻番以上增长 2023-07-07
v 证监会同意碳酸锂期货及期权注册 2023-07-07
v 国家卫健委:提升职业健康检查和职业病诊断结论的准确性 2023-07-07
v 昨天天津局地有小冰雹!高温持续至……要凉快了! 2023-07-07
v “心友会”吐“心”生 2023-07-07
v 华为张平安:盘古大模型不写诗 只做事 2023-07-07
分享到:
更多

网站运营:财经头条

财经头条 版权所有©1997-2016 未经书面授权禁止复制或建立镜像
京ICP备12018864号-11
联系我们:291 32 36@qq.com

营业执照公示信息