前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了,有点想重新拾起R语言^_^
R语言代码略带凌乱,讲真的还是更喜欢 Python 代码简洁。不过好几年不琢磨R语言,对R语言代码的凌乱美有些新奇,很好玩,这也许就是久别胜新欢吧。
而且R语言的文本分析生态也挺全的,Python与R结合起来,完美~
R语言读写操作
本章文件读写用到的包有
-
readtext
-
readr
-
readxl
-
writexl
其中readr、readxl均为tidyverse内的子包,做数据分析一般绕不开tidyverse
tidyverse含有的包
library(tidyverse) tidyverse::tidyverse_packages()
## [1] "broom" "cli" "crayon" "dbplyr" "dplyr" ## [6] "forcats" "ggplot2" "haven" "hms" "httr" ## [11] "jsonlite" "lubridate" "magrittr" "modelr" "pillar" ## [16] "purrr" "readr" "readxl" "reprex" "rlang" ## [21] "rstudioapi" "rvest" "stringr" "tibble" "tidyr" ## [26] "xml2" "tidyverse"
预备知识: tibble包
tibble比R内置的数据框的易用,默认不会将字符串转化为因子型。选择tibble数据的子集,返回的结果仍是tibble类型
-
创建数据框: tibble()
-
强制转化数据框: as_tibble()
创建数据框
#tibble::tibble意识是导入tibble包的tibble函数 df <- tibble::tibble( x = c(1,2,3,4), name=c("张三", "李四", "王五", "赵六"), age=c(25, 23, 30, 18) ) df
colnames(df)
## [1] "x" "name" "age"
rownames(df)
## [1] "1" "2" "3" "4"
读写实战
安装
install.packages(c("readtext","readr","readxl", "writexl"))
读取文件相关操作
读取 | 包 | 代码 | 功能 |
---|---|---|---|
txt | readtext | readtext() | 读取txt文件 |
csv | readr | read_csv() | 读取csv文件 |
excel | readxl | read_excel() | 读取xls、xlsx文件 |
读取csv
默认csv文件为utf-8编码
#读取csv df <- readr::read_csv('data/waimai8k.csv') #为了展示的更好看一些 df <- DT::datatable(df) df
读取excel文件
df2 <- readxl::read_excel('data/data.xlsx') df2
读txt
document <- readtext::readtext('data/三体.txt') document
#全部显示 #document['text'] #显示前200个字符 substr(document['text'], 1, 200)
## [1] "\n------------\n\n第1章 科学边界(1)\n\n 恋上你看书网 630bookla ,最快更新三体(全集)最新章节!\n\n 汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。\n\n 汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿"
document[['doc_id']]
## [1] "三体.txt"
#全部显示 #document[['text']] #显示前200个字符 substr(document[['text']], 1, 200)
## [1] "\n------------\n\n第1章 科学边界(1)\n\n 恋上你看书网 630bookla ,最快更新三体(全集)最新章节!\n\n 汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。\n\n 汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿"
导入多个txt文件
-
list.files() 某路径下多个文件
#获取文件列表 files <- list.files('data/txts', full.names=TRUE) head(files)
## [1] "data/txts/三孚股份2017.txt" "data/txts/三棵树2017.txt" ## [3] "data/txts/三江购物2017.txt" "data/txts/上海九百2017.txt" ## [5] "data/txts/上海机电2017.txt" "data/txts/上海物贸2017.txt"
texts <- c() doc_ids <- c() for (file in files) { document <- readtext::readtext(file, encoding = 'gbk') doc_ids <- c(doc_ids, document[['doc_id']]) texts <- c(texts, document[['text']]) #文本全部导入到tibble #texts <- c(texts, substr(document[['text']], 1, 50)) #截取前50个字符的文本,方便显示 } df <- tibble::tibble( doc_ids=doc_ids, texts = texts ) head(df)
写入文件相关操作
写入 | 包 | 代码 | 功能 |
---|---|---|---|
csv | readr | write_csv() | 将数据写入csv文件 |
excel | writexl | write_excel() | 将数据写入excel |
存入excel
使用writexl包的write_xlsx(x, path)
-
x: tibble表数据
-
path: xlsx文件路径
#写入xlsx writexl::write_xlsx(df, "output/reports.xlsx")
存入csv
使用readr包的write_csv(x, path)
-
x: tibble表数据
-
path: csv件路径
#写入csv readr::write_csv(df, "output/reports.csv")
往期文章
后 台回复关键词【 R读写 】获取本文代码和 数据
“ 分享 ”和“ 在看 ”是更好的支持!
以上所述就是小编给大家介绍的《R语言 | 读写txt、csv、excel文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- R 语言:读写 txt、csv、excel 文件
- Go 语言中的读写锁实现:RWMutex
- 浅谈 Go 语言中的读写锁和互斥锁
- Go语言的文件操作:文件的读写,文件的新建打开和删除
- 用go语言来做嵌入式-读写铁电存储器
- 想用数据库“读写分离” 请先明白“读写分离”解决什么问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。