R语言 读取文件

简介: 1. R读取txt文件使用R读取txt文件直接使用read.table()方法进行读取即可,不需要加载额外的包。read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))注意,此处的na.strings = c("NA") 的意思是文件中的缺失数据都是用NA进行表示;在读取文本文件时,默认的分割符号为空格。

1. R读取txt文件

使用R读取txt文件直接使用read.table()方法进行读取即可,不需要加载额外的包。

read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))

注意,此处的na.strings = c("NA") 的意思是文件中的缺失数据都是用NA进行表示;在读取文本文件时,默认的分割符号为空格。具体的参数设置可参照如下:

read.table(file, header = FALSE, sep = "", quote = "\"'",
           dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
           row.names, col.names, as.is = !stringsAsFactors,
           na.strings = "NA", colClasses = NA, nrows = -1,
           skip = 0, check.names = TRUE, fill = !blank.lines.skip,
           strip.white = FALSE, blank.lines.skip = TRUE,
           comment.char = "#",
           allowEscapes = FALSE, flush = FALSE,
           stringsAsFactors = default.stringsAsFactors(),
           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
img_54ccf749196b2819bba5a15c9d44e0e2.png

2. R读取csv文件

使用R读取csv文件和读取txt文件很类似,使用的是read.csv()方法,两者参数的使用大部分是一样的。

read.csv("/home/slave/test.csv", header=T, na.strings=c("NA"))
read.csv(file, header = TRUE, sep = ",", quote = "\"",
         dec = ".", fill = TRUE, comment.char = "", ...)

3. R读取xls和xlsx文件

读取xls和xlsx有很多方法,但是这里面的很多方法也不是特别好用,例如RODBC包中的读取xls方法就不太好用,有时还会出现各种各样的问题。在进行了一番入坑探索之后,找到了两个相对好用的读取xls文件的包,下面我将分别进行说明。

  • gdata
install.packages("gdata")
library(gdata)
read.xls("/home/slave/test.xls",sheet=1,na.strings=c("NA","#DIV/0!"))

其中sheet=1 参数的意思是读取第一个sheet中的内容;na.strings=c("NA","#DIV/0!") 将"NA" 和 "#DIV/0!" 都作为缺失数据表示,read.xls()方法的具体参数设置可参考如下:

read.xls(xls, sheet=1, verbose=FALSE, pattern, na.strings=c("NA","#DIV/0!"),
         ..., method=c("csv","tsv","tab"), perl="perl")
![](http://upload-images.jianshu.io/upload_images/9218360-3f24ba87157d2f8e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

xls2csv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tab(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tsv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2sep(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ...,
        method=c("csv","tsv","tab"), perl="perl")

gdata包有着很多的功能,但是它对其他的包的依赖很多,可能会出现各种不可预知的问题,下面介绍一个较少依赖的包。

  • readxl
install.packages("readxl")
library(readxl)
read_excel("/home/slave/test.xls",sheet=1,na="NA")
read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)
img_c108f7beb2db7cd22b5d5436f57213c7.jpe

readxl软件包可以很容易地将数据从Excel和R中取出。与许多现有软件包(例如gdata,xlsx,xlsReadWrite)相比,readxl没有外部依赖关系,因此它很容易在所有操作系统上安装和使用。 它旨在与表格数据一起工作。readxl支持旧版.xls格式和现代基于xml的.xlsx格式。

用法

library(readxl)
readxl includes several example files, which we use throughout the documentation. Use the helper readxl_example() with no arguments to list them or call it with an example filename to get the path.

readxl_example()
#>  [1] "clippy.xls"    "clippy.xlsx"   "datasets.xls"  "datasets.xlsx"
#>  [5] "deaths.xls"    "deaths.xlsx"   "geometry.xls"  "geometry.xlsx"
#>  [9] "type-me.xls"   "type-me.xlsx"
readxl_example("clippy.xls")
#> [1] "/Users/jenny/resources/R/library/readxl/extdata/clippy.xls"
read_excel() reads both xls and xlsx files and detects the format from the extension.

xlsx_example <- readxl_example("datasets.xlsx")
read_excel(xlsx_example)
#> # A tibble: 150 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#> 1         5.10        3.50         1.40       0.200 setosa 
#> 2         4.90        3.00         1.40       0.200 setosa 
#> 3         4.70        3.20         1.30       0.200 setosa 
#> # ... with 147 more rows

xls_example <- readxl_example("datasets.xls")
read_excel(xls_example)
#> # A tibble: 150 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#> 1         5.10        3.50         1.40       0.200 setosa 
#> 2         4.90        3.00         1.40       0.200 setosa 
#> 3         4.70        3.20         1.30       0.200 setosa 
#> # ... with 147 more rows
List the sheet names with excel_sheets().

excel_sheets(xlsx_example)
#> [1] "iris"     "mtcars"   "chickwts" "quakes"
Specify a worksheet by name or number.

read_excel(xlsx_example, sheet = "chickwts")
#> # A tibble: 71 x 2
#>   weight feed     
#>    <dbl> <chr>    
#> 1   179. horsebean
#> 2   160. horsebean
#> 3   136. horsebean
#> # ... with 68 more rows
read_excel(xls_example, sheet = 4)
#> # A tibble: 1,000 x 5
#>     lat  long depth   mag stations
#>   <dbl> <dbl> <dbl> <dbl>    <dbl>
#> 1 -20.4  182.  562.  4.80      41.
#> 2 -20.6  181.  650.  4.20      15.
#> 3 -26.0  184.   42.  5.40      43.
#> # ... with 997 more rows
There are various ways to control which cells are read. You can even specify the sheet here, if providing an Excel-style cell range.

read_excel(xlsx_example, n_max = 3)
#> # A tibble: 3 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#> 1         5.10        3.50         1.40       0.200 setosa 
#> 2         4.90        3.00         1.40       0.200 setosa 
#> 3         4.70        3.20         1.30       0.200 setosa
read_excel(xlsx_example, range = "C1:E4")
#> # A tibble: 3 x 3
#>   Petal.Length Petal.Width Species
#>          <dbl>       <dbl> <chr>  
#> 1         1.40       0.200 setosa 
#> 2         1.40       0.200 setosa 
#> 3         1.30       0.200 setosa
read_excel(xlsx_example, range = cell_rows(1:4))
#> # A tibble: 3 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#> 1         5.10        3.50         1.40       0.200 setosa 
#> 2         4.90        3.00         1.40       0.200 setosa 
#> 3         4.70        3.20         1.30       0.200 setosa
read_excel(xlsx_example, range = cell_cols("B:D"))
#> # A tibble: 150 x 3
#>   Sepal.Width Petal.Length Petal.Width
#>         <dbl>        <dbl>       <dbl>
#> 1        3.50         1.40       0.200
#> 2        3.00         1.40       0.200
#> 3        3.20         1.30       0.200
#> # ... with 147 more rows
read_excel(xlsx_example, range = "mtcars!B1:D5")
#> # A tibble: 4 x 3
#>     cyl  disp    hp
#>   <dbl> <dbl> <dbl>
#> 1    6.  160.  110.
#> 2    6.  160.  110.
#> 3    4.  108.   93.
#> # ... with 1 more row
If NAs are represented by something other than blank cells, set the na argument.

read_excel(xlsx_example, na = "setosa")
#> # A tibble: 150 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
#> 1         5.10        3.50         1.40       0.200 <NA>   
#> 2         4.90        3.00         1.40       0.200 <NA>   
#> 3         4.70        3.20         1.30       0.200 <NA>   
#> # ... with 147 more rows






特征

  • 没有外部依赖,例如Java或Perl。
  • 将非ASCII字符重新编码为UTF-8。
  • 将日期时间加载到POSIXct列中。 Windows(1900)和Mac(1904)日期规格都正确处理。
  • 发现最小数据矩形并默认返回。 用户可以使用范围,跳过和n_max进行更多的控制。
  • 默认情况下,列名称和类型由工作表中的数据确定。 用户也可以通过col_names和col_types提供。
  • 返回一个tibble,即带有附加tbl_df类的数据框。 除此之外,这提供更好的打印。
目录
相关文章
|
XML 数据格式 Windows
如何从xml文件创建R语言数据框dataframe
如何从xml文件创建R语言数据框dataframe
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
279 9
|
Python
R语言遍历文件夹求取其中所有栅格文件的平均值
通过NAvalue(tif_file_all) <- -10000这句代码,将值为-10000的像元作为NoData值的像元,防止后期计算平均值时对结果加以干扰。   接下来,我们通过file.path()函数配置一下输出结果的路径——其中,结果遥感影像文件的名称就可以直接以其所对应的条带号来设置,并在条带号后添加一个_mean后缀,表明这个是平均值的结果图像;但此外,这个仅仅是文件的名字,还需要将文件名与路径拼接在一起,才可以成为完整的保存路径,因此需要用到file.path()函数。最后,将结果图像通过writeRaster()函数加以保存即可,这句代码的解释大家同样参考R语言求取大量遥感
280 0
|
存储 算法 Linux
算法丨根据基因型VCF文件自动识别变异位点并生成序列fasta文件,基于R语言tidyverse
算法丨根据基因型VCF文件自动识别变异位点并生成序列fasta文件,基于R语言tidyverse
|
XML JSON 关系型数据库
R语言笔记丨数据储存文件的类型与介绍
R语言笔记丨数据储存文件的类型与介绍
|
Unix Linux
R语言-文件归档压缩方法
本文简单分享了一种在 R语言 中压缩文件的实现方法,以供参考学习
797 0
R语言-文件归档压缩方法
|
Linux 测试技术 数据处理
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
|
算法 Linux Python
SGAT丨基于R语言tidyverse的vcf转txt文件算法,SNP位点判断与自动校正,染色体格式替换
SGAT丨基于R语言tidyverse的vcf转txt文件算法,SNP位点判断与自动校正,染色体格式替换
|
数据采集 数据可视化
揭秘水文覆盖变化!使用 R 语言轻松处理 MODIS .nc 文件
GRACE水文数据包括地表水蓄积(SWS)、土壤水蓄积(SSS)、总水蓄积(TWS)等变量,通常以每月为单位进行统计和融合,并以网格的形式提供各个区域的数据。 在这里,我们将通过使用 R 语言及其相关包对 GRACE 数据进行研究。具体来说,我们将使用 ncdf4 包读取 GRACE 的 .nc 数据,并进行数据的预处理和可视化分析。
251 0
|
移动开发 Linux
Linux 下基于R语言打开hdf5(.h5)文件异常的处理方法
本文分享了如何在 Linux 中关闭 hdf5 文件锁定,让rhdf5 能够调用 HDF5库解析 h5文件的处理方法,以供参考
1166 0