[R] :read.csv拆分行

[R] :read.csv拆分行,r,R,我正在使用read.csv2将数据读入R数据帧。对于我的一个数据集,不知何故,一些变量被放入下一行,创建额外的行并剪切列。举例说明: 我的CSV如下所示: var1,var2,var3 value1,value2,value3 value1,value2,value3 var1 var2 value1 value2 value3 value1 value2 value3 但是,数据帧的结果如下所示: var1,var2,var3 value1,value2,value3 value

我正在使用
read.csv2
将数据读入R数据帧。对于我的一个数据集,不知何故,一些变量被放入下一行,创建额外的行并剪切列。举例说明: 我的CSV如下所示:

var1,var2,var3
value1,value2,value3
value1,value2,value3
var1    var2
value1  value2
value3
value1  value2
value3
但是,数据帧的结果如下所示:

var1,var2,var3
value1,value2,value3
value1,value2,value3
var1    var2
value1  value2
value3
value1  value2
value3
我在很多CSV文件上使用了相同的命令,甚至在一个具有完全相同文件的不同示例的文件上,但从未遇到过这个问题。有没有人知道这是什么原因


编辑:由于我仍然不知道如何上传一个实际的数据集,我上传了一个屏幕截图。拆分发生在超过3列的每一行中

在数据中,文件中的列数不相等,因此不能简单地使用
read.csv
,而必须使用
read.table
fill=TRUE
。在
col.name
中填入适当数量的列名,以反映您的数据结构。从您的屏幕截图中至少有6列

read.table(dat, header = FALSE, sep = ",", 
      col.names = c("col_name1", "col_name2", "col_name3"), fill = TRUE)

有关更多信息,请参见此。

谢谢@jyr!这是完全有道理的,到目前为止,它运行良好。R是否有任何方法可以检测所需的实际列数?

能否提供一个可报告的示例数据集?还有你想要的输出?模式似乎不完整或错误
var3
没有出现在数据框中。您的csv文件可能有问题,一些附加的
\n
或类似的问题。我发现excel可以在csv文件行的末尾添加许多附加的(逗号),这可能会中断尝试读取数据的其他程序。我建议您使用程序员文本编辑器检查您的csv文件。@jyr,由于我仍然不确定如何在此处上载数据集,我在原始帖子中附上了数据集外观的屏幕截图。拆分发生在每一行超过3列的地方。您好,很高兴这有帮助。您可以将问题标记为已回答,最好是对答案进行评论,而不是发布新答案:)我不知道如何自动检测它,但您可以创建比您需要的更多的列,并删除那些只有
NA
的列,其中有
dat[,apply(dat,2,function(x)sum(is.NA(x))>0]