酷徒LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:files  XLS  Excel  文件  XLSX  
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

    Travis-CI Build StatusAppVeyor Build StatusCoverage StatusCRAN_Status_Badge

    概述

    通过readxl包,可以很容易地从Excel和 R 中获取数据。 许多现有软件包( 比如。 gdata,xlsx,xlsReadWrite ) readxl没有外部依赖,因此可以在所有操作系统上轻松安装和使用。 它被设计用来处理表格数据。

    readxl同时支持传统 .xls 格式和基于现代xml的.xlsx 格式。 web服务支持库,它可以抽象出底层二进制格式的许多复杂性。 要解析 .xlsx,我们使用 RapidXML C++ 库。

    安装

    安装最新版本的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"

    按 NAME 或者数字指定工作表。

    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 是由空白单元格以外的内容表示的,则设置 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惯例是新的,那么你可能需要参考数据科学中的数据导入章节。 readxl将与其他软件包( 如 readr ) 变得越来越一致。

    文章

    你可以在中找到更详细的内容:

    • 单元格和列类型
    • 工作表几何图形
    • readxl工作流

    特性

    • 没有外部依赖项,比如,Java或者 Perl。

    • 将非ascii字符编码为 UTF-8.

    • 将datetimes加载到POSIXct列。 Windows ( 1900 ) 和 Mac ( 1904 ) 日期规范都被正确处理。

    • 发现最小数据 rectangle 并在默认情况下返回。 用户可以使用 rangeskipn_max 进行更多的控制。

    • 默认情况下,列名称和类型由工作表中的数据确定。 用户还可以通过 col_namescol_types 提供。

    • 返回 tibble,换句话说,带有附加 tbl_df 类的数据框架。 除此之外,它提供更好的印刷效果。

    其他相关软件包

    下面是一些与readxl相互补充的它的他软件包,也避免了Java依赖性。

    写Excel文件: 示例文件 datasets.xlsxdatasets.xls 是用 openxlsx的帮助创建的。 openxlsx提供"。用于编写,设置样式和编辑工作表的高级界面"。

    l<-list(iris=iris, mtcars=mtcars, chickwts=chickwts, quakes=quakes)openxlsx::write.xlsx(l, file="inst/extdata/datasets.xlsx")

    非表格数据和格式: tidyxl 致力于从Excel导入笨拙而非表格数据。 它也是"。将单元格内容,位置和格式暴露在整齐的结构中,以便进一步操作"。



    文章标签:文件  files  Excel  XLS  XLSX  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷