Xiaotao Shen

数据的读取和输出

2018/06/03 Share

数据的读取和输出

我们使用R语言来进行数据处理,那么就需要将本地的数据读取到R中,当在R中进行一定的处理之后,我们也需要将处理之后的数据输出。因此,本文就给大家介绍一下,R语言中最基本的数据读取和输出的方法。

如何设置工作路径

工作路径(work directory)是指当前R的文件夹地址在哪?如果想知道自己现在的工作路径是什么,可以使用下列代码:

1
getwd()

就会显示出来当前的工作路径在哪里,意思就是你直接输出的各种那文件,就会直接输出到这个文件夹里面。

那么比如我们现在有文件在另外一个文件夹里,在F盘的test里面,我想从这个里面读取我的数据,那么我该怎么做呢?那就需要将路径设置在该文件夹下,使用下列代码:

1
setwd("F:/test")

注意一定要是使用反斜杠。

记住这两个函数,getwd和setwd,那么就可以将工作路径设置在我们想要的任何文件夹下面了。下面我们开始介绍最为常见的几种文件格式在R语言中的读取和输出。

csv文件

csv文件是我们平时最为常见的文件了。全称为逗号分隔符文件。在R中,有现成的函数可以读取它。我们假设现在有一个数据,data.csv,在F盘的test文件夹中。我们现在要读取它,那么可以使用下列代码:

1
2
3
#首选我们把路径设置到相应文件夹
setwd("F:/test")
data <- read.csv(file = "data.csv", stringsAsFactors = FALSE)

对的,就是使用read.csv函数,该函数就是用来读取csv文件的函数。他的参数有很多,我们来选几个最为常用的来说明一下,其他的可以使用?read.csv来参考官方文档

  • file:就是指要读取的文件的名称,比如上面的例子就是data.csv。注意后缀名一定要在。
  • header:是指文件是否有列名。如果设置为TRUE,则将第一行读取为该文件的列名。
  • stringsAsFactors:是否把文件的非数值型数据读取为factor类型。一般来说,我们都不需要,如果读取之后,需要将其转换为factor类型,那么后续可以自己手动转变。因此这里一定要将该参数设置为FALSE。

那么我们怎么输出csv文件呢?这就用到另外一个函数write.csv:

1
2
#将data数据输出为csv文件
write.csv(x = data, file = "data1.csv", row.names = FALSE)

我们也来简单介绍一下write.csv函数的常见参数含义:

  • x:就是你要输出的数据的名字,比如我们输出的数据是data,因此就设置为data。
  • file:是要输出数据的文件名。比如我们将data这个数据输出为data1.csv。
  • row.names:是指输出的csv文件的行名是否要自动加上。如果设置为TRUE,那么输出的数据会加上行名,设置为FALSE,则不会加上行名。

一般来说,上面的read.csv和write.csv函数就可以满足大多数的csv文件的读取和输出要求了,但是如果文件很大的话,那么这两个函数就会显的速度比较慢了,因此有另外一个由wickham大神写的包readr就非常的厉害了。下面同样使用readr包读取同样的数据,大家可以自行感受一下两者速度的差异:

1
2
3
4
5
6
7
#首先安装readr
install.packages("readr")
library("readr")
#读取数据
data <- read_csv(file = "data.csv")
#输出数据
readr::write_csv(x = data, path = "data1.csv")

readr包中的read_csv和write_csv分别用来读取和输出数据。参数更加简洁。因此,强烈推荐大家使用这两个函数来进行数据的读取和输出。

xls和xlsx

跟csv相比,excle表格文件就更加普遍了。一般来说,有xlx和xlsx两种文件。在这里,我们直接就推荐wicham的另外一个包,readxl包来进行这两种数据的读取和输出。

1
2
3
4
5
6
7
#首先安装readxl
install.packages("readxl")
library("readr")
#读取数据
data <- readxl::read_excel(path = "data.xlsx")
#输出数据
write_excel_csv(x = data, path = "data2.xlsx")

需要注意的是,write_excel_csv函数是包含在包readr中的。向大家强烈推荐这两个包用来处理csv,xlsx,xls文件的处理。

text文件

另外一种常见文件就是txt文件了。可以使用R中自带的函数read.table。

介绍一下read.table的常用参数:

  • file:读取数据的名称。
  • header:是否要把第一行变为列名,默认为FALSE。
  • sep:列之间的分隔符是什么?默认是空格,也就是sep=””,还有另外两种比较常见的,逗号,sep=”,”,其实就是csv文件了,还有sep=”\t”,也就是制表符。如果读取数据有问题的话, 可以试着改变sep来看看。

总结

我们常见的几种数据的读取和输出就介绍到这了,其实就两个包和一个函数,readr,readxl和read.table。所有数据及代码已放到github上,请猛戳阅读原文获得链接。

CATALOG
  1. 1. 数据的读取和输出
  2. 2. 如何设置工作路径
  3. 3. csv文件
  4. 4. xls和xlsx
  5. 5. text文件
  • 总结