Я перебираю список адресов адресов в path
. что-то вроде "ProcessedFiles/2014_12/XCP2P018PORTFO_20141224.CSV"
Как пропускать наборы данных с неправильным количеством столбцов в цикле?
Цель состоит в том, чтобы собрать много CSV-файлов в один большой фрейм данных. У меня протекающий:
OUTPUT <- data.frame()
for (i in 1:nrow(paths)){
PORT_TMP <- read.table(as.character(paths[i,]), sep = ";", header = TRUE, row.names = NULL)
OUTPUT <- rbind(OUTPUT, PORT_TMP)
cat(i)
}
Проблема возникает, когда некоторые данные кадр не имеет одинаковое количество столбцов, которое останавливает цикл и вызывает ошибку. В моем 1000+ длинном списке есть 1 или 2 файла с неправильным количеством столбцов. Таким образом, моя петля терпит неудачу, когда i rbind()
. Я бы хотел пропустить эти наборы данных. Правильное число - 47, поэтому я пытаюсь что-то вроде:
OUTPUT <- data.frame()
for (i in 1:nrow(paths)){
PORT_TMP <- read.table(as.character(paths[i,]), sep = ";", header = TRUE, row.names = NULL)
if ncol(PORT_TMP) == 47 {
OUTPUT <- rbind(OUTPUT, PORT_TMP)
}
cat(i)
}
Я получаю некоторые ошибки, а не pro в операторах if. если кто-то может помочь в этой потенциально простой проблеме, я бы очень признателен.
он работает сейчас, мы увидим, если он скачет! почти это было. Спасибо. –