(R) цикл для кадра данных не работает - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь создать фрейм данных, используя цикл for, так как я хочу обновлять строки в фрейме данных новым элементом на каждой итерации. Однако во фрейм данных выводится только последнее значение.

Я попытался прочитать разные файлы во фрейме данных, а затем с помощью 'cbind' сопоставить номер записи файла данных с количеством, в данном случае, полных дел в файле. Код работает для одной записи, но я не могу получить цикл for для добавления всех разных строк вместе; похоже, что вторая итерация копируется поверх первой и т. д.

полные кейсы

complete <- function(directory, id) {

    fileList <- dir(directory, full.names = TRUE);
    frame <- data.frame();

    for (i in seq_along(id)) {

        data <- complete.cases(read_csv(fileList[i]));
        frame <- cbind(i, sum(data));
    }

}

Поэтому я хочу получить фрейм данных, в котором перечислены различные файлы в указанном каталоге, а также количество завершенных дел. Можете ли вы сказать мне, что я делаю неправильно в этом цикле?

1 Ответ

0 голосов
/ 19 января 2019

Поскольку вы всегда перезаписываете свой фрейм данных frame в цикле, вам необходимо cbind его тоже.

complete <- function(directory, id) {

    fileList <- dir(directory, full.names = TRUE);
    frame <- data.frame();

    for (i in seq_along(id)) {

        data <- complete.cases(read_csv(fileList[i]));
        frame <- cbind(frame, i, sum(data));
    }

}

в противном случае ваш frame устанавливается на каждой новой итерации. Поэтому, если вы хотите добавить его к вашему frame, вы должны указать frame также в качестве ввода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...