数据文件的读写

在R语言中可以读写的最基本的数据格式就是text,以及csv文件。用read.table()或者read.csv函数就可以,相应的写入函数是write.table(),write.csv()。对于其它的格式文件,R语言有相应的包支持,我们最经常用的xlsx格式需要导入library(openxlsx)

一、准备工作

为方便后面使用的相对路径,我们先使用“setwd(路径)”设置路径,设置好之后可以用“getwd()” 获取当前路径进行检查。

  1. getwd() #获得当前工作路径,即数据文件的工作场所,R的工作环境
  2. setwd(路径) #设置工作路径 以便R能找到你的数据文件

读取文件函数简介

  1. read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
  2. row.names, col.names, as.is = !stringsAsFactors,na.strings = "NA", colClasses = NA, nrows = -1,
  3. skip = 0, check.names = TRUE, fill = !blank.lines.skip,strip.white = FALSE, blank.lines.skip = TRUE,
  4. comment.char = "#",allowEscapes = FALSE, flush = FALSE,
  5. stringsAsFactors = FALSE,fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
  6. #file 文件路径 #sep 分隔符 #header
  7. 第一行是不是列名(如果第一行是列名导入的时候填TRUE;默认值是FALSE,即把第一行算作数据)

注意数据分隔符:

因为数据有时候是从数据库导出或者.xlsx里截取等等,所以有时候看起来是空白分隔却有着不一样的格式。

常见空白分隔符有:空格,制表符,换行符。sep=” ”;sep = “\t”;sep = “\n”

二、读数据

这个比较简单,直接调用函数即可,参数就是 文件的路径,当然还有其它的一些参数,自行试一试就知道了。如果不太清楚有哪些参数的,调用help函数看一下就ok了。当我们读入的是其它的格式文件时也需要加载相应的包。

2.1 读取TXT数据

将工作路径调制要导入文件所在的文件夹下,之后输入.txt的文件名和分隔符就可以导入数据了。

  1. data1 <- read.table('test.txt',sep = '\t',header = TRUE)
  2. data1

2.2 读取CSV文件

  1. data2 <- read.csv('countrylanguage.csv',TRUE)
  2. head(data26)

2.3 读取Excel文件

R语言是一个大小写敏感的语言,加载好openxlsx包就可以开始读取Excel文件了。

(1)从剪贴板导入

先打开Excel,选中需要的数据后复制,然后再R中输入以下的指令:data.excel =read.xlsx("clipboard") #clipboard剪贴板

  1. data3 <- read.table("clipboard",header=T)
  2. data3

(2)从Excel文件导入

  1. #install.packages("openxlsx")
  2. library(openxlsx)
  3. dada4<- read.xlsx(file,sheet=1)
  4. data4

2.4 批量读取多个 Excel 文件

批量读取的数据文件往往具有相同的列结构(列名、列类型),读入后紧接着需要按行合并为一个数据框。批量读取并合并,道理很简单,总共分三步:获取批量数据文件的路径;循环机制批量读取;合并成一个数据文件。

  1. library(purrr)
  2. library(readxl)
  3. files = list.files("C:/Users/hao'hai/Documents", pattern = "xlsx",full.names = TRUE, recursive = FALSE) #查找指定路径下的EXCEL文件
  4. #[1] "C:/Users/hao'hai/Documents/hh1.xlsx"
  5. #[2] "C:/Users/hao'hai/Documents/hh2.xlsx"
  6. #[3] "C:/Users/hao'hai/Documents/hh3.xlsx"
  7. df = map_dfr(set_names(files), read_xlsx, .id = " 来源") #合并路径下的EXCEL文件数据为df
  8. df #查看合并数据
  9. # `来源` 年龄 性别 风险 专兼职 职业 教育 结果
  10. # <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
  11. #1 C:/Users/hao'hai/Documents/hh~ 30-39 女 无 专职 无业 研究~ 持平
  12. #2 C:/Users/hao'hai/Documents/hh~ 30-39 男 有 兼职 干部 文盲 持平
  13. #3 C:/Users/hao'hai/Documents/hh~ 30-39 男 有 兼职 干部 文盲 持平

三、写入数据文件

3.1 写入函数简介

  1. write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE,col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")

可以保存成任意符号分隔的文件write.table(data,file,sep),保存成文件的类型要自己以扩展名的方式写在‘file'字段里,比如test.csv,test.doc,test.xlsx,write.table()和write.csv()就可以完成。比较实用的参数就是列名col.name,行名row.name,以及引号quote,一般我们输出的数据有引号,如果想去除的话把quote设置为F就好。其它格式文件类似。

3.2 写入CSV文件

  1. # 写入文件
  2. data(iris)
  3. write.csv(iris,file = "mydata.csv",row.names = F)
  4. # 读文件
  5. data4<-read.table("mydata.csv",header=T, sep=",")
  6. head(data4)

3.3 写入Excel文件

  1. aa<-data.frame(id = 1:5,y = rnorm(5))
  2. bb<-data.frame(id = 1:7,y = rnorm(7))
  3. # install.packages("openxlsx") #如果没有openxlsx包,运行该命令
  4. library(openxlsx)
  5. sheets = list("我是aa" = aa,"我是bb" = bb)
  6. write.xlsx (sheets,"我是输出结果.xlsx")

四、总结

这篇文章主要介绍R语言文本文件读写(txt/csv/xlsx),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。

参考文献

  1. (R语言 数据的读写)[https://blog.csdn.net/xiaonanxinyi/article/details/103080589]
  2. (R语言-如何循环读取excel并保存为RData)[https://www.yht7.com/news/140857]
  3. (R语言新书】2.2 数据读写)[https://zhuanlan.zhihu.com/p/256284851]

数据文件的读写—R实现的更多相关文章

  1. Python基础 | 数据文件的读写

    目录 txt txt的读入 txt的写出 csv xls\xlsx 在线网页数据 常用的工具 爬虫的步骤 pdf pdfrw PyPDF2 提取文档信息 word文档 其他统计软件生成文件 本文总结使 ...

  2. 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理

    摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制? 本文分享自华为云社区<MySQL日志顺序读写及数据文件随机读写原理>,作者:JavaEdge . MySQL在实际工作时候的两 ...

  3. Numpy数组数据文件的读写

    一.引言 读写数据文件的重要性就不必多说了. 二.读取列表形式数据的文件 1.我们写几行CSV格式(列表形式,两值之间逗号隔开)的数据. id,height,age 1,175,20 2,168,18 ...

  4. Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)

    日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...

  5. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

  6. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  7. Python数据分析之Pandas读写外部数据文件

    1 引言 数据分析.数据挖掘.可视化是Python的众多强项之一,但无论是这几项中的哪一项都必须以数据作为基础,数据通常都存储在外部文件中,例如txt.csv.excel.数据库.本篇中,我们来捋一捋 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. rsync+sersync实现数据文件实时同步

    一.简介 sersync是基于Inotify开发的,类似于Inotify-tools的工具: sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字: ...

  10. 从零开始学C++之IO流类库(三):文件的读写、二进制文件的读写、文件随机读写

    一.文件的读写 如前面所提,流的读写主要有<<, >>, get, put, read, write 等操作,ofstream 继承自ostream, ifstream 继承自 ...

随机推荐

  1. 监控室NTP/GPS同步时钟解决方案

    深圳市立显电子有限公司,专业LED时钟生产厂家!--------[点击进入]  车站.机场.学校等场所监控室布置要求:   1.宜选择建筑物中环境噪声较小的声场所.如车站票务中心后台.机场保安值班室. ...

  2. 如何用虚拟机VMware Workstation安装CentOs-7

    因为我是先安装虚拟机的,再安装CentOs的.在此建议大家先安装CentOs-7再安装虚拟机,比较方便. 1.首先进入centos官方网站下载,网站如下:https://www.centos.org/ ...

  3. 链表反转,C++实现

    1 // To Compile and Run: g++ invert_list.cc -std=c++11 -Wall -O3 && ./a.out 2 3 4 #include & ...

  4. 基础篇:windows常用命令

    1. windows常用系统命令 cd [进入目录] dir [列出当前目录文件] echo + 打印内容 [打印命令] echo 123 > 1.txt [打印内容到文本] type + 文件 ...

  5. 在uni-app中调用高德地图去导航

    1.判断一下是不是在微信环境 2.微信环境调用微信自带的地图导航 3.h5环境跳转去高德地图 guide() { let self = this; console.log("self.lat ...

  6. Java中StringBuilder相关知识点

    StringBuilder 1.StringBuilder概述 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免.我们可以通过StringB ...

  7. 使用idea从零编写SpringCloud项目-Ribbo

    git:https://github.com/bmdcheng/product_server git:https://github.com/bmdcheng/order_server 1.需要创建两个 ...

  8. 容器数据库(CDB)和传统的非容器数据库的区别

    传统的非容器数据库在系统元数据和实例资源没有进行任何共享.容器数据库把 Oracle 提供的元数据.后台进程以及内存结构进行共享,把每个部门数据库的存储结构以 PDB 的形式独立出来,从而实现了系统资 ...

  9. JS样式获取的封装方法

    样式获取 style属性 只能获取标签内容style属性里面存在的一些样式 如果你需要获取对应的全局所有地方设置样式 我们就需要采用一些方法 getComputedStyle 方法属于window的方 ...

  10. 【Unity】Timeline探索记(4)第二个例子——动作特写/子弹时间

    写在前面 这次例子参考这篇实现博文(附带项目下载),博文前面介绍非常具体,可惜后面特写轨实现代码不是按照我想要的标准四大件(data.mixer.clip.track)来组织的,所以这里我略过介绍,只 ...