跳到内容

tidyverse/readr

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最近一次提交

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

阅读器

CRAN状态 R-CMD检查 Codecov测试覆盖率

概述

读者的目标是提供一种快速友好的阅读方式分隔文件中的矩形数据,例如逗号分隔的值(CSV)和选项卡分隔值(TSV)。它被设计用于解析多种类型在野外发现的数据,同时提供信息丰富的问题报告解析导致意外结果时。如果您是readr新手最好的出发点是数据导入R代表数据科学。

安装

#获取readr的最简单方法是安装整个tidyverse:安装.包("潮韵诗")#或者,只安装读卡器:安装.包("阅读器")
#或者您可以从GitHub安装开发版本:
#install.packages(“pak”)
巴基斯坦::巴基斯坦("tidyverse/读卡器")

备忘单

数据导入备忘单缩略图

用法

readr是核心tidyverse的一部分,因此可以使用以下内容加载它:

图书馆(潮韵诗)#>——附加核心tidyverse包──────────────────────── tidyverse 2.0.0——
#> dplyr 1.1.4型阅读2.1.5.9000
#> 适用于猫1.0.0串1.5.1
#> ggplot2第3.5.1节可移动3.2.1
#> 杂交1.9.3第1.3.1天
#> 呜呜声1.0.2
#>——冲突────────────────────────────────────────── tidyverse_conflicts()——
#> dplyr::filter()屏蔽统计信息::filters()
#> dplyr::lag()屏蔽统计信息::lag
#> 使用冲突的包(<http://conflicted.r-lib.org/>)迫使所有冲突成为错误

当然,您也可以将readr作为单独的包进行加载:

图书馆(阅读器)

要使用readr读取矩形数据集,可以将两部分组合在一起:函数将文件的行解析为单个字段和列规范。

readr支持以下文件格式读取_*()功能:

  • 读取csv():逗号分隔值(CSV)
  • 读取():tab分隔值(TSV)
  • 读取csv2():分号分隔的值,作为十进制标记
  • read_delim():分隔文件(CSV和TSV是重要的特殊文件案例)
  • 读取_fwf():固定宽度文件
  • read_table():空白分隔的文件
  • read_log():web日志文件

列规范描述了如何转换每个列从字符向量到特定数据类型(例如字符、,数字、日期时间等)。如果没有列规范,readr将根据数据猜测列类型。vignette(“列类型”)提供了有关readr如何猜测列类型的更多详细信息。列类型猜测非常方便,尤其是在数据探索期间,但它重要的是要记住这些只是猜测.与任何数据分析一样项目在探索阶段成熟,最佳策略是提供显式列类型。

以下示例加载与readr和guess捆绑的示例文件列类型:

( <-read_csv(读_例("鸡.csv")))#>行数:5列数:4
#>——立柱规格────────────────────────────────────────────────────────
#>分隔符:“,”
#>chr(3):鸡、性、座右铭
#>dbl(1):蛋
#>
#> 使用“spec()”检索此数据的完整列规范。
#> 指定列类型或设置`show_col_types=FALSE`以消除此消息。
#>#A台:5×4
#>鸡性蛋下蛋座右铭
#><chr><chr><dbl><chr
#>1福格霍恩·莱霍恩公鸡0这是个玩笑,啊,那是个玩笑…
#>2鸡小母鸡3天要塌了!
#>3姜母鸡12听。我们要么死得自由,小妞…
#>4鸡卡米拉7咩咩叫。
#>5厄尼巨型公鸡0把索洛船长放在货舱里。

请注意,readr打印列类型–猜测的列类型,在在这种情况下。这很有用,因为它允许您检查列已按预期读入。如果他们没有,那意味着你需要提供列规范。这听起来像是很多麻烦,但幸运的是,readr为此提供了一个很好的工作流。使用规范()从您的初始努力。

规范()#>科尔斯(
#>鸡肉=col_character(),
#>sex=col_character(),
#>鸡蛋铺好=col_double(),
#>座右铭=col_character()
#> )

现在,您可以复制、粘贴和调整它,以创建更明确的readr表示所需列类型的调用。我们在这里表达这一点应该是一个有层次的因素公鸡母鸡,按顺序,以及那个鸡蛋_下蛋应为整数。

 <-读取csv(阅读器_示例("水痘.csv"),列类型(_T) =科尔斯(   =col_character(),       =列因子(_F)(水平 =c(c)("公鸡","母鸡")),鸡蛋_下蛋 =列_整数(),座右铭     =col_character()))
#>#A台:5×4
#>鸡性蛋下蛋座右铭
#><chr><fct><int><chr>
#>1福格霍恩·莱霍恩公鸡0这是个玩笑,啊,那是个玩笑…
#>2鸡小母鸡3天要塌了!
#>3姜母鸡12听。我们要么死得自由,小妞…
#>4鸡卡米拉7咩咩叫。
#>5巨鸡厄尼把索洛船长放进货舱。

小品(“readr”)对readr进行了扩展介绍。

版本

readr在2.0.0版(2021年7月发布)中获得了一个新的解析引擎。这就是所谓的第二版,readr称vroom::vroom()默认情况下。

2.0.0之前的readr版本中的解析引擎现在称为第一版。如果您使用的是readr>=2.0.0,您仍然可以访问通过函数进行第一版解析有条件(1,…)(_E)本地版本(1)。显然,如果使用的是readr<2.0.0根据定义,将获得第一版解析,因为仅此而已是。

我们将继续支持多个版本的第一版,但总体目标是使第二版比第一个。因此,计划是最终否决,然后删除第一版代码。新代码和主动维护的代码应使用再版。变通办法有条件(1,…)(_E)本地版本(1)以务实的方式修补遗产代码或作为标识为第二版成熟了。

选择

有两种主要的readr替代方法:baseR和data.table弗雷德()。下面讨论了最重要的差异。

基准R

与相应的基本函数相比,readr函数:

  • 对参数使用一致的命名方案(例如列名(_N)列类型(_T)收割台colClasses(科尔类)).

  • 根据数据集的不同,速度通常要快得多(高达10x100倍)。

  • 默认情况下保持字符串不变,并自动解析公共日期/时间格式。

  • 如果加载需要一段时间,请使用有用的进度条。

  • 所有功能都以完全相同的方式工作,而不考虑电流语言环境。要覆盖以美国为中心的默认值,请使用地区().

data.table和弗雷德()

数据表有一个函数类似读取csv()打电话弗雷德()。与相比弗雷德(),读卡器功能:

  • 有时速度较慢,尤其是在数字量较大的数据上。

  • 可以自动猜测一些参数,但基本上鼓励显式规范,例如分隔符、跳过的行和标题行。

  • 遵循tidyverse惯例,例如返回tibble、列名修复的标准方法和通用的迷你语言用于列选择。

致谢

感谢: