问题标签 [readr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
293 浏览

r - 使用readr时如何使用通配符定义col_type?

前几天刚问过,使用readrpackage时如何设置具体的列类型。在 r 中使用 readr 读取文件时的大整数

有没有办法通过通配符定义列名?就我而言,有时我有几列以Intensity和一个附录开头,具体取决于实验。read_tsv如果您事先不知道使用了哪些项目名称,则很难在函数中使用。

所以像这样的东西col_types = cols('Intensity.*' = col_double())会很棒。

有人知道如何获得此功能吗?

编辑: 也许像阅读前两行,grep'强度',names然后以某种方式创建这个参数,如cols(Intensity=col_double(), 'Intensity pg'=col_double(), 'Intensity hs'=col_double()). 但我不知道如何动态创建这个参数值。

0 投票
1 回答
1367 浏览

r - readr - 如何从 spec() 更新 col_spec 对象

我喜欢此 RStudio 博客文章中描述的有关列规格的工作流程。基本上,可以在导入后获取列规范read_csv,然后将其保存下来以备后用。例如,从那个帖子:

不幸的是,规范对象本身是带有属性的列表,但这些与通过参数提供给read_csv函数的不同列规范不匹配col_types

此外,.rds 文件很难在 Windows 中进行编辑(至少对我而言)。

我希望能够编辑一个大col_spec对象(例如,跳过某些列,或者以其他方式编辑类)。我可以继续猜测我需要编辑列表的字符串,如下所示:

但这似乎很尴尬。有没有更优雅的方法来更新列分类,比如在我的示例中,尝试跳过mtcars$cyl列?或者,如果不是一种优雅的方式,一种涵盖所有可能类型的方式?我不想对如何<collector_date>使用各种日期格式进行大量猜测。

0 投票
0 回答
177 浏览

r - 修复导入到 R 时 csv 和 fwf 文件中的错误(损坏的字符)

我正在从曾经存储为磁带的大文件(fwf 和 csv)中导入数据,因此在读写磁带时可能会产生错误。

旧文件采用固定宽度文件 (fwf) 格式 新文件采用 .csv 格式(以“;”作为分隔符)

错误可能是这样的:

对于 fwf 文件:

  • 损坏的字符会横向破坏所有数据序列,从而使所有单元格从那时起与内容不匹配。
  • 缺少行尾字符

对于 csv 文件:

  • 损坏的字符
  • 在其他数字列中损坏的字符或字母
  • 意外的分隔符(导致比预期更多的分隔符(
    列数 - 1)

有没有办法将它导入 R 跳过错误行,但保留错误日志以便之后可以手动检查它们?

还是我应该使用 R 外部的其他工具?在这种情况下,使用哪个工具?

我有大约 100 个非常大的文件(每个 90GB),所以我更喜欢一些基于 data.table::fread 或其他一些快速的解决方案。

0 投票
1 回答
2304 浏览

r - 在 R 中处理字节顺序标记 (BOM)

有时,字节顺序标记 (BOM) 出现在 .CSV 文件的开头。当您使用记事本或 Excel 打开文件时,该符号不可见,但是,当您使用各种方法在 R 中读取文件时,您将在第一列的名称中使用不同的符号。这是一个例子

开头带有 BOM 的示例 csv 文件。

read.csv在基本 R 包中通读

通读data.tablefread

在readrread_csv包中通读

您可以注意到变量名称 ID 前面的不同字符。

这是在所有这些上运行名称时的结果

x3中,前面没有任何“可见” ID,但是当您检查时

如何在每种情况下摆脱这些不需要的字符。PS:请添加更多读取csv文件的方法,面临的问题和解决方案。

0 投票
1 回答
439 浏览

r - 静默 type_convert

有没有办法使用包中的type_convert函数readr而不告诉你它在控制台中使用的列规范。

?帮助文档中的示例:

我希望这Parsed with column specification部分消失,所以它看起来像:

0 投票
1 回答
327 浏览

r - 如何用\"读取CSV,R中引用的字符值内的序列?

这是一个包含两个字符列的 CSV 文件:

所有字符值都用双引号引起来。并且其中一个值中有一个序列\",(转义引号加定界符)。我无法通过 read.csv、readr 中的 read_csv 或 data.table 中的 fread 正确读取此文件。

0 投票
1 回答
702 浏览

r - 在 R 中读取 CSV 时,如何保持时间和日期格式相同?

我的 CSV 如下所示像这样

但是当我在 R 中阅读它时,它会更改日期和时间的格式(最重要的问题)。 这

这是我用来读取 csv 的简单代码

我怎样才能使日期和时间的格式不会改变并且看起来像第一张图片?

0 投票
0 回答
840 浏览

r - 括号中的readr和负数

有没有办法将readr括号中的数字解析为负数?例如,在下面的代码中,我希望将列B解析为数字,并将第一项解析为 -2.3。

目前我只是读取字符数据然后进行后处理,但我更愿意(比如说)注册一个自定义解析器。

0 投票
1 回答
778 浏览

r - 读取文本文件:read.table 与 read_table

我正在将这个网页上的文本文件读入 R。如果我读到这个数据并且read.table数据被正确解析并且我得到了所有 12 个月的数据:

但是,如果我用它读取这些数据,read_table首先会出现它被正确解析;但是,两位数的月份代码(10、11、12)正在被剥离,因此只解析了第一个数字。

数据的维度相同;但是,我无法弄清楚如何导入数据read_table以保留完整的月份编码。

0 投票
2 回答
6051 浏览

r - 使用 R 中 readr 包中的 read_csv 将未引用的字符串作为因子导入

我有一个包含许多列的 .csv 数据文件。不幸的是,字符串值没有引号(即,apples io "apples)。当我使用 readr 包中的 read_csv 时,字符串值被导入为字符:

结果是:

有没有办法强制 read_csv 将字符串值作为因子 io 字符导入?

重要的是,我的数据文件有这么多列(字符串和数字变量),AFAIK 无法通过提供带有 col_types 参数的列规范来完成这项工作。

替代解决方案(例如,使用 read.csv 导入数据,或使用 dplyr 代码将数据框中的所有字符变量更改为因子)也受到赞赏。

更新:我了解到 csv 文件中的值是否有引号对 read.csv 或 read_csv 没有影响。read.csv 会将这些值作为因子导入;read_csv 会将它们作为字符导入。我更喜欢使用 read_csv,因为它比 read.csv 快得多。