readxl, 将excel文件(. xls 和. xlsx ) 读入 R

分享于 

7分钟阅读

GitHub

 
Read excel files (.xls and .xlsx) into R
  • 源代码名称:readxl
  • 源代码网址:http://www.github.com/tidyverse/readxl
  • readxl源代码文档
  • readxl源代码下载
  • Git URL:
    git://www.github.com/tidyverse/readxl.git
    Git Clone代码到本地:
    git clone http://www.github.com/tidyverse/readxl
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/tidyverse/readxl
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    readxl

    概述

    readxl包使从Excel中获取数据并放入R变得容易,和许多现有包相比(例如,gdata.xlsx.xlsReadWrite )readxl没有外部依赖项,因此很容易在所有操作系统上安装和使用,它被设计用来处理表格数据。

    readxl支持传统的.xls格式和现代基于xml的.xlsx格式,libxlsC库用于支持.xls,它抽象了底层二进制格式的许多复杂性,为了解析.xlsx,我们使用了RapidXMLC 库。

    安装

    从CRAN安装最新版本的最简单方法是安装整个tidyverse。

    install.packages("tidyverse")

    注意:你仍然需要显式地加载readxl,因为它不是通过library(tidyverse)加载的核心tidyverse包。

    或者,仅从CRAN安装readxl:

    install.packages("readxl")

    或者从GitHub安装开发版本:

    # install.packages("devtools")devtools::install_github("tidyverse/readxl")

    用法

    library(readxl)

    readxl包含几个示例文件,在整个文档中使用,使用不带参数的helper readxl_example()列出它们或使用示例文件名调用它来获取路径。

    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()读取xls和xlsx文件,并从扩展名检测格式。

    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.1 3.5 1.4 0.2 setosa#> 2 4.9 3.0 1.4 0.2 setosa#> 3 4.7 3.2 1.3 0.2 setosa#> # ... with 147 more rowsxls_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.1 3.5 1.4 0.2 setosa#> 2 4.9 3.0 1.4 0.2 setosa#> 3 4.7 3.2 1.3 0.2 setosa#> # ... with 147 more rows

    excel_sheets()列出工作表名称。

    excel_sheets(xlsx_example)#> [1]"iris""mtcars""chickwts""quakes"

    按名称或数字指定工作表。

    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 rowsread_excel(xls_example, sheet=4)#> # A tibble: 1,000 x 5#> lat long depth mag stations#> <dbl> <dbl> <dbl> <dbl> <dbl>#> 1 -20.42 181.62 562 4.8 41#> 2 -20.62 181.03 650 4.2 15#> 3 -26.00 184.10 42 5.4 43#> # ... with 997 more rows

    有多种方法可以控制读取哪些单元格,如果提供excel样式的单元格区域,甚至可以在此处指定工作表。

    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.1 3.5 1.4 0.2 setosa#> 2 4.9 3.0 1.4 0.2 setosa#> 3 4.7 3.2 1.3 0.2 setosaread_excel(xlsx_example, range="C1:E4")#> # A tibble: 3 x 3#> Petal.Length Petal.Width Species#> <dbl> <dbl> <chr>#> 1 1.4 0.2 setosa#> 2 1.4 0.2 setosa#> 3 1.3 0.2 setosaread_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.1 3.5 1.4 0.2 setosa#> 2 4.9 3.0 1.4 0.2 setosa#> 3 4.7 3.2 1.3 0.2 setosaread_excel(xlsx_example, range= cell_cols("B:D"))#> # A tibble: 150 x 3#> Sepal.Width Petal.Length Petal.Width#> <dbl> <dbl> <dbl>#> 1 3.5 1.4 0.2#> 2 3.0 1.4 0.2#> 3 3.2 1.3 0.2#> # ... with 147 more rowsread_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 rows

    如果NA s由空白单元格以外的内容表示,请设置NA参数。

    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.1 3.5 1.4 0.2 <NA>#> 2 4.9 3.0 1.4 0.2 <NA>#> 3 4.7 3.2 1.3 0.2 <NA>#> # ... with 147 more rows

    如果是tidyverse新手,你可能需要参考R Data Science中的数据导入章节来获得数据。readxl将越来越与其他包一致,例如readr


    文件  files  Excel  XLS  XLSX  
    相关文章