R中.csv数据中无休止的列的悲哀

R中.csv数据中无休止的列的悲哀,r,csv,R,Csv,所以我有一堆.csv文件,它们是通过模拟输出的。我正在编写一个R脚本来运行它们,并在每个.csv文件中生成一列的直方图。然而,.csv的编写方式使R不喜欢它。当我测试它时,我最初是在Excel中打开文件的,显然这将格式更改为R喜欢的格式。然后,当我回去对整个文件夹运行脚本时,我发现R不喜欢这种格式。 我读到的数据如下: x <- read.csv("synch-imit-characteristics-2-tags-2-size-200-cost-0.1run-2-.csv", strip

所以我有一堆.csv文件,它们是通过模拟输出的。我正在编写一个R脚本来运行它们,并在每个.csv文件中生成一列的直方图。然而,.csv的编写方式使R不喜欢它。当我测试它时,我最初是在Excel中打开文件的,显然这将格式更改为R喜欢的格式。然后,当我回去对整个文件夹运行脚本时,我发现R不喜欢这种格式。 我读到的数据如下:

x <- read.csv("synch-imit-characteristics-2-tags-2-size-200-cost-0.1run-2-.csv", strip.white=TRUE)

Error in read.table(test, strip.white = TRUE, header = TRUE) : 
  more columns than column names
然而,在记事本中,并没有明显的格式。事实上,行与行之间根本没有空间,即成本、0.1mean-loyalty、mean-hospitality0.988544等。因此,我也很奇怪,当我从记事本中处理并粘贴它时,它得到了如上所述的所需格式。不管怎样,继续,在我用excel打开它之后,它被转移到了这个“

因此,看起来数据最初没有行之间的分隔(但我不知道excel是如何计算出来的,也不知道如何复制和粘贴),但R并没有意识到这一点。相反,它将所有数据视为一行(因为我有40000多行,所以没有那么多列)。我不想在excel中打开并保存每个文件。有没有办法让R根据需要读取数据

因为当我从记事本复制并粘贴它时,它的行有新行,所以我似乎只需要R来读取它,因为我知道逗号分隔同一行上的列,返回分隔行。我尝试使用我能找到的所有sep=”“命令。但我无法理解。首先解决记事本问题: 行与行之间必须有CR(回车,
\r
)字符(并且没有LF,\n字符,使记事本将其视为一行)。 有些程序接受这一点以及新行字符,有些则不接受

例如,您可以使用“扩展”选项将所有“\r”替换为“\n”或“\r\n”。首先选择“视图>显示符号>显示所有字符”,以便查看您正在执行的操作

最后,回到R: (正如所指出的,R实际上可以将CR作为新行处理)

read.csv假定第一行中有非空的标题名,但实际上有:

cost,0.1
稍后在数据中,您有一行包含两列以上的内容:

weight,1 of p1, 2 of p1,
这意味着并非所有列都有标题名(我想知道0.1是否应该是标题名)

这两种解决方案可以是:

  • 添加包含所有列的标题,或
  • 正如在评论中指出的,使用
    header=F

  • 如果没有一个(未修改,未在Excel中打开),将很难提供帮助文件。你能提供一个链接吗?
    header=F
    有效吗?你的R版本是什么?R接受“\n”或“\R\n”作为有效的行终止符。如果这是答案,我会感到惊讶。请参阅帮助页,了解
    scan
    你是对的:这只是记事本部分的答案,否则标题是错误的我会修改我的答案。
    cost,0.1
    
    weight,1 of p1, 2 of p1,