我正在尝试使用以下代码将大量没有标题的CSV文件导入到R中的单个数据框中,但是会导致错误消息“名称与以前的名称不匹配”。我猜这个函数需要数据有标题。我可以使用哪个函数进行此过程,允许导入没有标题的数据?
@GET
@RequestMapping(value = "/list/{companyId}/{agentName}/{pollInterval}/{lastExecutionDate}", produces = XML_CONTENT_TYPE)
public List<Alert> listAlertsByAgentId(@PathVariable String companyId,
@PathVariable String agentName,
@PathVariable String pollInterval,
@PathVariable String lastExecutionDate)
throws IOException {
List<Alert> list = new ArrayList<Alert>();
Agent agent = alertService.findAgentByAgentName(agentName);
agent.setPollInterval(Integer.parseInt(pollInterval));
int year = Integer.parseInt(lastExecutionDate.substring(0, 4));
int month = Integer.parseInt(lastExecutionDate.substring(4, 6)) - 1;
int date = Integer.parseInt(lastExecutionDate.substring(6, 8));
int hour = Integer.parseInt(lastExecutionDate.substring(8, 10));
int minute = Integer.parseInt(lastExecutionDate.substring(10, 12));
int second = Integer.parseInt(lastExecutionDate.substring(12, 14));
Calendar cal = Calendar.getInstance();
cal.set(year, month, date, hour, minute, second);
agent.setLastExecutionDate(cal.getTime());
alertService.updateAgent(agent);
list = fetchAlertListByAgentName(companyId, agentName);
if(list == null || list.size() == 0 || list.isEmpty()) {
list = new ArrayList<Alert>();
}
return list;
}
答案 0 :(得分:1)
如果您的文件目前有不同的标题,那么我认为我们可以使用
do.call(rbind, lapply(file_names, read.csv, skip = 1, header = FALSE))
规定所有文件具有相同数量的列和相同的数据类。 skip = 1L
会忽略每个文件中的现有标头,而header = FALSE
会自动生成V1
,V2
,...作为列名,对所有数据框都是一致的。
但如果您的文件没有标题,则只需设置
即可do.call(rbind, lapply(file_names, read.csv, header = FALSE))
哦,正如 user20650 提醒您,您需要第二个选项。