我正在阅读成千上万的文件。每个文件有5行信息,然后是标题行,然后是数据。每个文件包含不同数量的具有不同列名的列,我需要记录列名以了解如何处理它。不幸的是,当我在文件中读到这个:
temp.data <- read.csv(temp[i],header=TRUE,sep=",", stringsAsFactors = FALSE, skip= 5)
我收到错误:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
duplicate 'row.names' are not allowed
发生这种情况的原因是标题行中的分隔符数量比数据行中的分隔符数量少一个。我知道这个,因为如果你计算字段 - 你可以看到标题有10个,数据有11个。例如下面。
count.fields(temp[i],sep=",",skip = 5)
[1] 10 11 11 11 11 11
如果我知道所有文件的格式都相同,那么我只需输入自己的标题列并从第6行读取数据,但因为我需要知道每个列的名称,以便我知道如何使用它我需要记录进入的列标题。我该怎么做?下面是一个示例文件。
--Meta Data--
Start Time(UTC) LoggerName Pck Vin
7/22/2017 18:57 9160-06A0
--Raw Data--
Timestamp(UTC) Air Conditioning Power[Watts] C2 Input Voltage[V] HV Battery Current[A] HV Battery SOC[%] HV Battery Voltage[V] Is Driving[bool] OAT[DegC] Odometer[kilometers] Vehicle Speed[km/h]
7/22/2017 18:57 0 0 0 0 0 0 0 0 0
7/22/2017 18:57 0 0 0 0 0 0 0 0 0
7/22/2017 18:58 1700 13.21100044 0.600036621 94 394.7399902 1 37 62842.47656 33.07193375
7/22/2017 18:59 3300 13.04199982 -28 94 392.7399902 1 37 62843.01172 16.33480072
7/22/2017 19:00 3000 13.07600021 -10.09997559 93 393.9799805 1 36.5 62843.73047 0
在excel中,列标题和数据列排成一行,所以我不知道在这种情况下发生了什么。我猜它正在将日期/时间列读为两列。
如果是这种情况,如何在其他列标题的前面添加标题为“date”的另一个col标题?