Использование is.na () и! Is.na () в операторах if - PullRequest
0 голосов
/ 11 мая 2018

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

    for (idx in 1:nrow(config_path_test)) {
         if (config_path_test[idx,2] == "ens84" & is.na(config_path_test[idx,4])) 
         {#process Raw data}

         else {
            if(config_path_test[idx,2] == "ens84" & !is.na(config_path_test[idx,4]))
              {#process TPM data}
              }

Протестировал мой код в столбце 4, содержащем пути к моим даннымво всех полях нет путей ни в одном из полей или в комбинации обоих (у некоторых есть пути, у некоторых - нет).

Приведенный выше код успешно работает как со всеми, так и без полей.Тем не менее, из-за комбинации обоих я немного застрял.

Поскольку ни один путь не отображается для всего столбца, как NA, я использовал:

   is.na() and !is.na()

Однако комбинация обоих не покажет NA для отсутствующих значений.Поля пустые.

Есть идеи, как изменить мой код для обработки пустых полей?Или есть идеи, как обработать пустые значения в NA?

Заранее спасибо

1 Ответ

0 голосов
/ 11 мая 2018

Если я правильно понимаю проблему, у файлов, которые вы прочитали, есть некоторые ("") поля, которые вы хотели бы преобразовать в NA? Если это так, сделайте следующее вне вашей функции:

df[df == ""] <- NA

Убедитесь, что это не что-то похожее, например (""). Эта тема также может быть вам интересна.

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