问题标签 [read.fwf]

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 回答
1451 浏览

r - blank.lines.skip = TRUE 因 read.fwf 而失败?

我的文件末尾有四个空行。

当我运行这段代码时,blank.lines.skip 参数被忽略。我的输出中仍然有空行。

该文件是:

最后四个空行。

0 投票
2 回答
3904 浏览

python - 在使用 read_fwf() 读取的 pandas 数据帧中查找虚假数据

我正在尝试使用从这里获取的每日数据来分析纽约的天气记录:http: //cdiac.ornl.gov/epubs/ndp/ushcn/daily_doc.html

我正在加载数据:

在哪里:

现在,我遇到的问题是,在读取数据时,似乎有很多inf值,而这些值不应该在源数据中(数据中最接近的是-9999值,它代表无效数据)。

通常,如果我正在使用lists或类似的东西,我会打印出整个内容以查找对齐错误,并确定哪些行受到影响,然后查看源文件以查看发生了什么。我想知道如何在 pandas 中做同样的事情,这样我就可以弄清楚这些inf值的来源。

这是显示我的代码inf

编辑:更正了列宽。问题依然存在。

0 投票
1 回答
1394 浏览

r - R readr::read_fwf 使用 fwf_widths 忽略字符

我想知道是否有一种简单的方法可以使用 R 中 readr 包中的 read_fwf 跳过字符。

例如,修改文档中的示例之一

抛出错误:

但是,使用基本的 read.fwf 函数可以正常工作:

有没有办法可以模仿这种行为readr::read_fwf?(我主要是出于性能原因感兴趣)。

0 投票
1 回答
227 浏览

r - R将几个fwf导入一个数据帧

我正在尝试从 .txt (fwf) 格式的 11 个文件创建一个 DF,并希望使用 apply。我已经检查并找到了一些关于 read.csv 的好建议,但不是 fwf(因为你必须指定宽度)

这就是我的数据的样子:

它保存在一个目录中,这里是一个名称示例:

到目前为止,这适用于单个文件:

但是,当我尝试:

它返回一个 DF 列表而不是一个 DF。我知道我必须以某种方式告诉 R 将每个新的 DF 附加到现有的,但我无法找到如何。

当然是很容易做到的事情,但是如果不使用 for 循环,我就找不到解决方法...

任何建议表示赞赏

0 投票
1 回答
1527 浏览

r - read.fwf 错误“第 x 行没有 5 个元素” - 可能是由于特殊字符

fwf 读取固定宽度的文本:

添加另一行会导致错误:

扫描错误(文件 = 文件,什么 = 什么,sep = sep,报价 = 报价,dec = dec,:第 3 行没有 5 个元素

我唯一能猜到的是第 3 行有一些特殊字符。有人可以帮忙吗?谢谢。

0 投票
1 回答
241 浏览

r - R - 如何读取包含 # 符号的 .fwf

我正在尝试使用 read.fwf 将大型固定宽度文件读入 R,但我不断收到错误“扫描错误(文件 = 文件,什么 = 什么,sep = sep,报价 = 报价,dec = dec,:第 47 行没有 41 个元素”。我的数据集有 41 列,但是当我仅在第 48 行读取时,我只得到 27 列。我注意到遇到 # 符号时会发生错误。我怎样才能删除 # 符号或强制 read.fwf 忽略它。这是我的一些代码,但由于数据集很大,我不打算提供它。

谢谢你的帮助。

0 投票
1 回答
138 浏览

r - 有没有办法在R中按字节长度读取数据

有没有办法像 SAS 输入命令一样在 R 中按字节长度读取数据?当一些多字节字符在表中作为固定列长度时,

aaa대전11b1
bb 서울21b2
ccc부산갑b3

SAS 可以按字节长度读取它,如下所示。

数据测试;
infile "文件路径";
输入
V1 $3。
V2 6 美元。
V3 2 美元。;
跑;

→</p>

aaa, 대전11, b1
bb , 서울21, b2
ccc, 부산갑, b3


但是在 R 中, read.fwf 只能按宽度而不是字节长度来分隔数据。

所以,命令如下

test <- read.fwf("文件路径", widths=c(3,6,2))

输出错误,或者最好是这样的形状

aaa, 대전11b1, NULL
bb , 서울21b2, NULL
ccc, 부산갑b3

所以,这是我的问题:有没有办法在 R 中按字节长度分隔数据列?

0 投票
4 回答
225 浏览

r - 如何整理每n(不同)行带有标题的固定宽度文件?

我在一个固定宽度的文件中有时间序列数据,其中观察行(n 根据样本大小而变化)出现在包含重要元数据(即样本编号、日期等)的“标题”行下。两种类型的行都包含字母数字字符。它看起来像这样(为了便于阅读,缩短了字符串:

标题行由字符串 == 4 中的第一个字符区分,共有 89 个字符。观察行 == 5 并且有 24 个字符。

我想要将标题行粘贴到每个后续观察行(数据子集),以便稍后我可以使用 read_fwf 解析字符串,并确保我可以根据标题行中包含的信息对每个观察进行排序。我不在乎是否删除了原始标题行。像这样:

我找到的最接近的解决方案是这里的fwf 文件,每 5 行有一个标题,标题是字符和观察数字

提供的解决方案是一个循环,它迭代地滚动行并测试它们是字符还是数字,然后将它们相应地粘贴在一起。

我试图通过首先使用 read.fwf() 或 read_fwf() 读取 fwf 并将第一个字符定义为一列来区分标题和观察结果,以使其适应我的数据:

我的适应:

我还尝试通过 nchar() 听者 =89 和观察 = 24 指定标题与观察行。我意识到这里的循环解决方案可能是使用 ifelse 但出现了另一个问题。数据集长约 39700 行,我一直在获取新数据。循环将需要很长时间...

我想用 data.table 或 dplyr 语法来做到这一点。

我已经尝试按照这些帖子玩 dplyr::lag:dplyr 示例 1dplyr 示例 2,并接近我想要的:

在此处输入图像描述

但是正如您所看到的,新列仅粘贴上一行的信息......正如 lag() 应该做的那样。

任何帮助将不胜感激,在此先感谢您。

作为旁注。这些数据以前在 SAS 中处理过,但因为我不做 SAS,所以你去吧。如果有帮助,我确实有 SAS 代码:

如您所见,它拆分文件、对变量进行排序、合并它们。然而,这是逐年完成的,我想多年来都使用一个文件。

0 投票
1 回答
407 浏览

r - 将固定宽度格式数据读取到 R 中,条目超过列宽

我需要使用美国人口普查局分发的大都会地区数据的年度建筑许可证,可在此处下载为固定宽度格式的文本文件。这是该文件的摘录(我已经删除了列名,因为它们的格式不是很好,可以在将文件读入日期框架后替换):

如上面的摘录所示,名称列中的许多条目超过了列的宽度(看起来是 36 个字符)。我已经尝试了 utils 包和 readr 的各种 fwf 读取功能,但找不到将这些条目考虑在内的解决方案。任何提示将不胜感激。


编辑:原始文件摘录由 mod 编辑以进行格式化,并且在此过程中删除了超出第三列宽度的示例条目。我已经更新了摘录以重新包含它们并删除了列名。

我运行了@markdly 的代码,该代码在此编辑之前提交,适用于所有不存在此问题的条目。我将结果导出到 csv,并在下面包含了一段摘录,以显示这些条目会发生什么:


编辑 2:我实际上正在研究的大多数主要都市区都不属于这个问题类别,所以虽然有这些数据会很好,但如果没有可行的解决方案,会有一种从数据集中完全删除这些条目的方法?

0 投票
0 回答
576 浏览

r - 从固定宽度格式文件中读取特定列

我有大型固定宽度格式的数据集,其中包含多条记录,记录号为 1、2、3 等。我想使用 select * sql 语句读取所有记录号为 1 的记录。我正在使用 read.fwf 函数从文件中导入,但是如何使用带有 read.fwf 函数的 sql 语句或任何其他替代方法来从具有某些条件的固定宽度格式中读取?