检查R中字符串中的项目数

时间:2017-10-18 17:25:43

标签: r text field

我有一个非常大的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

2 个答案:

答案 0 :(得分:3)

假设df是您的数据框

apply(df, 1, length)

这将为您提供每行的长度。

答案 1 :(得分:3)

您可以使用基本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"
)