将没有标题的多个CSV导入单个R数据框

时间:2016-10-31 19:08:01

标签: r

我正在尝试使用以下代码将大量没有标题的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;
}

1 个答案:

答案 0 :(得分:1)

如果您的文件目前有不同的标题,那么我认为我们可以使用

do.call(rbind, lapply(file_names, read.csv, skip = 1, header = FALSE))

规定所有文件具有相同数量的列和相同的数据类。 skip = 1L会忽略每个文件中的现有标头,而header = FALSE会自动生成V1V2,...作为列名,对所有数据框都是一致的。

但如果您的文件没有标题,则只需设置

即可
do.call(rbind, lapply(file_names, read.csv, header = FALSE))

哦,正如 user20650 提醒您,您需要第二个选项。