检查R中字符串中的项目数
Checking for number of items in a string in R
我有一个非常大的 csv 文件(140 万行)。它应该在每行中有 22 个字段和 21 个逗号。它是通过获取季度文本文件并将它们编译成一个大文本文件创建的,以便我可以导入 SQL。过去,一个字段不在文件中。我没有时间逐行检查。
在 R 中,有没有办法验证每行有 22 个字段或 21 个逗号?下面是一个小样本数据集。可能缺少的字段是第 10 个槽中的 0。
32,01,01,01,01,01,000000,123,456,0,132,345,456,456,789,235,256,88,4,1,2,1
32,01,01,01,01,01,000001,123,456,0,132,345,456,456,789,235,256,88,5,1,2,1
假设 df
是您的数据框
apply(df, 1, length)
这将为您提供每行的长度。
您可以使用基础 R 函数 count.fields
来执行此操作:
count.fields(tmp, sep=",")
[1] 22 22
此函数的输入是文件名或连接名。下面,我提供了一个 textConnection
。对于大文件,您可能希望将其输入 table
:
table(count.fields(tmp, sep=","))
请注意,这也可用于使用 length
计算文件中的行数,类似于 *nix 操作系统中 wc -l
的输出。
数据
tmp <- textConnection(
"32,01,01,01,01,01,000000,123,456,0,132,345,456,456,789,235,256,88,4,1,2,1
32,01,01,01,01,01,000001,123,456,0,132,345,456,456,789,235,256,88,5,1,2,1"
)
我有一个非常大的 csv 文件(140 万行)。它应该在每行中有 22 个字段和 21 个逗号。它是通过获取季度文本文件并将它们编译成一个大文本文件创建的,以便我可以导入 SQL。过去,一个字段不在文件中。我没有时间逐行检查。
在 R 中,有没有办法验证每行有 22 个字段或 21 个逗号?下面是一个小样本数据集。可能缺少的字段是第 10 个槽中的 0。
32,01,01,01,01,01,000000,123,456,0,132,345,456,456,789,235,256,88,4,1,2,1
32,01,01,01,01,01,000001,123,456,0,132,345,456,456,789,235,256,88,5,1,2,1
假设 df
是您的数据框
apply(df, 1, length)
这将为您提供每行的长度。
您可以使用基础 R 函数 count.fields
来执行此操作:
count.fields(tmp, sep=",")
[1] 22 22
此函数的输入是文件名或连接名。下面,我提供了一个 textConnection
。对于大文件,您可能希望将其输入 table
:
table(count.fields(tmp, sep=","))
请注意,这也可用于使用 length
计算文件中的行数,类似于 *nix 操作系统中 wc -l
的输出。
数据
tmp <- textConnection(
"32,01,01,01,01,01,000000,123,456,0,132,345,456,456,789,235,256,88,4,1,2,1
32,01,01,01,01,01,000001,123,456,0,132,345,456,456,789,235,256,88,5,1,2,1"
)