R语言 | 读写txt、csv、excel文件

栏目: IT技术 · 发布时间: 4年前

[更新~] Python网络爬虫与文本数据分析

前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了,有点想重新拾起R语言^_^

R语言代码略带凌乱,讲真的还是更喜欢 Python 代码简洁。不过好几年不琢磨R语言,对R语言代码的凌乱美有些新奇,很好玩,这也许就是久别胜新欢吧。

而且R语言的文本分析生态也挺全的,Python与R结合起来,完美~

R语言 | 读写txt、csv、excel文件

R语言读写操作

本章文件读写用到的包有

  • readtext

  • readr

  • readxl

  • writexl

其中readr、readxl均为tidyverse内的子包,做数据分析一般绕不开tidyverse

R语言 | 读写txt、csv、excel文件

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

R语言 | 读写txt、csv、excel文件

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

R语言 | 读写txt、csv、excel文件

读取excel文件

df2 <- readxl::read_excel('data/data.xlsx')
df2

R语言 | 读写txt、csv、excel文件

读txt

document <- readtext::readtext('data/三体.txt')
document

R语言 | 读写txt、csv、excel文件

#全部显示
#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)

R语言 | 读写txt、csv、excel文件

写入文件相关操作

写入 代码 功能
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")

往期文章

plotnine: Python版的ggplot2作图库

小案例: Pandas的apply方法 

stylecloud:简洁易用的词云库

用Python绘制近20年地方财政收入变迁史视频

Python网络爬虫与文本数据分析

读完本文你就了解什么是文本分析

文本分析在经管领域中的应用概述

综述:文本分析在市场营销研究中的应用

从记者的Twitter关注看他们稿件的党派倾向?

Pandas时间序列数据操作

70G上市公司定期报告数据集

文本数据清洗之正则表达式

shreport库: 批量下载上海证券交易所上市公司年报

Numpy和Pandas性能改善的方法和技巧

漂亮~pandas可以无缝衔接Bokeh

YelpDaset: 酒店管理类数据集10+G

台回复关键词【 R读写 】获取本文代码和 数据

分享 ”和“ 在看 ”是更好的支持!


以上所述就是小编给大家介绍的《R语言 | 读写txt、csv、excel文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建高性能Web站点

构建高性能Web站点

郭欣 / 电子工业出版社 / 2012-6 / 75.00元

《构建高性能Web站点(修订版)》是畅销修订版,围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,几乎涵盖了Web站点性能优化的所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式......一起来看看 《构建高性能Web站点》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试