2011-07-06 52 views
13

我试图读取一个列为导向的csv文件到R作为数据框。read.csv row.names

该文件的第一行是像这样:

sDATE, sTIME,iGPS_ALT, ...

,然后将每个附加的线是测量:

4/10/2011,2:15,78, ...

当我尝试读成R此,通过

d = read.csv('filename')

我得到一个重复的row.names错误,因为R认为数据的第一列是行名称,并且由于所有的测量都是在同一天进行的,所以第一列中的值不会改变。

如果我把row.names = NULLread.csv电话,我得到一个外来列d$row.names对应于SDATE列,一切都“转移”一个栏下,所以d$sDATE会在它2:15,根据需要不4/10/2011

如果我在excel中打开我的csv,什么也不做,然后保存它,一切都很酷。我必须处理数百个这样的数据,因此手动保存在Excel中并不是我想要的。如果有编程的东西,我可以用python或其他方法预处理这些csv,那就太好了。

+0

如何设置'row.names = 1:n',其中'n'是文件中的行数。 – nullglob

+0

结果在read.table中出现错误(file = file,header = header,sep = sep,quote = quote,: 无效'row.names'规范' – nimish

+2

粘贴csv的前几行(和列) –

回答

29

read.csv只假定有任何行名称,如果标题中的值比其他行中少。所以不知何故,你要么缺少一个列名,要么有一个你不想要的额外列。

4

你可能会有额外的专栏。
但它可能是由原始电子表格中数据右侧实际为空的杂散格式化单元格(或单元格列)产生的。
下面是关键:Excel将保存CSV文件中的空白字段,以便在表格中格式化任何空白单元格。 这就是为什么你可能有这个问题:因为当你用Excel打开CSV文件并重新保存时,R的问题就会消失。
发生了什么:当您将CSV文件拖回到Excel中时,它将随后忽略数据右侧或下方的空单元格(因为CSV文件没有格式化)。

结论:小心将格式化的电子表格保存为CSV文件以便与统计软件包一起使用。杂散格式意味着CSV中的杂散字段。

0

一个可能的原因可能是标题行后面的行末尾有一个逗号。 Excel静静地忽略它们并在保存时删除。

至少在我的情况下

0

我面临同样的问题。它通过像下面加入header=TRUE解决

tempdata <- read.csv("C:\\File.csv",header=TRUE) 

第一列是日期列正确对齐。