我正在尝试将一个面向列的csv文件作为数据帧读取到R中。
文件的第一行如下所示:
sDATE, sTIME,iGPS_ALT, ...
然后每多一行就是一个测量值:
4/10/2011,2:15,78, ...
当我尝试将其读入R时,via
d = read.csv('filename')
我得到了一个重复的row.names错误,因为R认为数据的第一列是行名,而且由于所有测量都是在同一天进行的,所以第一列中的值不会改变。
如果我把row.names = NULL放到read.csv调用中,我会得到一个无关列d$row.names,它对应于sDATE列,并且所有内容都被“下移”了一列,所以d$sDATE中应该有2:15,而不是需要的4/10/2011。
如果我在excel中打开我的csv,什么都不做,然后保存它,一切都很酷。我必须处理成百上千个这样的文件,所以手动保存在excel中不是我想要的。如果我可以通过编程的方式在python或其他语言中预处理这些csv,那就太好了。
发布于 2011-07-07 08:01:50
只有当标题中的值比其他行中的值少时,read.csv才会假定有任何行名。因此,不知何故,您要么缺少一个列名,要么有一个不需要的额外列。
发布于 2013-03-15 05:32:41
您可能确实有一个额外的专栏。
但它可能是由于原始电子表格中数据右侧的一个实际为空的零散格式化单元格(或单元格列)引起的。
关键是: Excel将为工作表中设置格式的任何空单元格保存CSV文件中的空字段。这就是你可能遇到这个问题的原因:因为当你用Excel打开CSV文件并重新保存它时,R的问题就消失了。
发生了什么:当您将CSV文件拉回到Excel中时,随后将忽略数据右侧或下方的空单元格(因为CSV文件没有格式)。
结论:注意将格式化的电子表格保存为CSV文件,以便与统计包一起使用。零散格式表示CSV中的零散字段。
发布于 2014-06-13 01:03:16
一个可能的原因是在标题行之后的行尾有一个额外的逗号。Excel会自动忽略它们,并在保存时删除它们。
至少对我来说是这样的
https://stackoverflow.com/questions/6595673
复制相似问题