Как заменить NA в столбце даты

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

Пусто

Затем я все еще хочу, чтобы мой столбец даты был классом даты, поэтому я конвертирую его обратно, используя as.Date, но затем он снова генерирует NA. Так что я застрял в этой петле. Если понадобится пример, я добавлю его после следующей встречи. Я хочу преобразовать NA в пробелы, потому что я использую rbind для другого фрейма данных, у которого нет NA.

Ниже приведен код, о котором я говорю:

> df1
        Date File
1 2016-10-20    1
2 2016-10-18    2
3       <NA>    3

> str(df1)
'data.frame':   3 obs. of  2 variables:
 $ Date: Date, format: "2016-10-20" "2016-10-18" NA
 $ File: chr  "1" "2" "3"

> df1 <- sapply(df1, as.character)

> df1[is.na(df1)] <- ""

> df1
     Date         File
[1,] "2016-10-20" "1" 
[2,] "2016-10-18" "2" 
[3,] ""           "3" 

> df1 <- as.data.frame(df1)

> df1$Date <- as.Date(df1$Date, format = "%Y-%m-%d")

> df1
        Date File
1 2016-10-20    1
2 2016-10-18    2
3       <NA>    3

Поэтому я просто хочу знать, может ли df1 [1,3] быть классом Date и быть пустым.


person d84_n1nj4    schedule 06.10.2016    source источник
comment
В чем проблема с наличием НА? Вы должны иметь возможность rbind() также иметь в данных NA.   -  person tobiasegli_te    schedule 06.10.2016
comment
Я думаю, что могу связать с NA, как вы сказали, но я просто хочу сохранить согласованность, поскольку объединенный файл подключен к Tableau, и есть вычисляемые поля, основанные на этом поле даты.   -  person d84_n1nj4    schedule 06.10.2016
comment
Рассматривали ли вы простое удаление строк, содержащих NA?   -  person Robert    schedule 06.10.2016
comment
Добавьте воспроизводимый пример. Непонятно, почему вы не можете использовать na.omit или хотите ли вы удалить значения NA, не удаляя строки, к которым они прикреплены.   -  person Michael Griffiths    schedule 06.10.2016
comment
Я не хочу удалять строки, к которым прикреплены NA.   -  person d84_n1nj4    schedule 06.10.2016
comment
В столбце Date не может быть пустого значения. Пробел - это character класс. Так что либо оставьте это столбцом character, либо привыкните к NAs   -  person David Arenburg    schedule 06.10.2016
comment
Я привыкну к АН, спасибо @DavidArenburg   -  person d84_n1nj4    schedule 06.10.2016
comment
NA - ваш друг. Научитесь любить это :)   -  person smci    schedule 13.11.2016


Ответы (1)


Просто попробуйте na.omit (df1), он удалит все строки со значениями NA ..

person Bhrigu Bhanot    schedule 28.11.2017