【发布时间】:2014-02-20 18:02:07
【问题描述】:
所以我有一堆模拟输出的 .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
调查后,我发现 R 不喜欢的原始 .csv 文件看起来与我用 excel 打开的测试文件不同。我在记事本中打开后复制并粘贴了下面的第一位:
cost,0.1
mean-loyalty, mean-hospitality
0.9885449527316088, 0.33240076252915735
weight,1 of p1, 2 of p1,
但是,在记事本中,没有明显的格式。事实上,行之间根本没有空间,即成本,0.1mean-loyalty,mean-hospitality0.988544 等。所以我也很奇怪,当我从记事本处理并粘贴它时,它会得到所需的格式如上。无论如何,继续前进,在我用excel打开它之后,它被转移到这个“
cost,0.1,,,,,,,,
mean-loyalty, mean-hospitality,,,,,,,,
0.989771257,0.335847092,,,,,,,,
weight,1 of p1, etc...
所以看起来数据最初在行之间没有分隔(但我不知道 excel 是如何计算出来的,或者复制和粘贴它),但 R 没有接受这一点。相反,它将所有内容视为一行(并且由于我有 40,000 多行,因此它没有那么多列)。我不想在 excel 中打开和保存每个文件。有没有办法让 R 根据需要读取数据?
因为当我从记事本复制并粘贴它时,它的行有新行,似乎我只需要 R 来读取它,知道逗号分隔同一行上的列,并且返回分隔行。我试着弄乱我能找到的所有 sep="" 命令。但我想不通。
【问题讨论】:
-
如果没有其中一个(未修改,未在 Excel 中打开)文件,将很难提供帮助。你能以某种方式提供一个链接吗?
-
header=F工作吗? -
你的 R 版本是什么?