У меня была точно такая же проблема.Чтобы исправить это, я объявил класс столбца фрейма данных, используя as.POSIXct()
.
Пример:
> temp = data.frame(col1 = NA)
> temp[1,] = Sys.time()
> str(temp)
'data.frame': 1 obs. of 1 variable:
$ col1: num 1.4e+09
Но
> temp = data.frame(col1 = as.POSIXct(NA,""))
> temp[1,] = Sys.time()
> str(temp)
'data.frame': 1 obs. of 1 variable:
$ col1: POSIXct, format: "2014-05-21 15:35:46"
Интересно, что хотяначальный класс столбца по умолчанию "logical"
:
> temp = data.frame(col1 = NA)
> str(temp)
'data.frame': 1 obs. of 1 variable:
$ col1: logi NA
Вы можете записать в него символы:
> temp = data.frame(col1 = NA)
> temp[1,] = "hello"
> str(temp)
'data.frame': 1 obs. of 1 variable:
$ col1: chr "hello"
Однако, как и POSIXct
, вы не можете записывать коэффициенты:
> temp = data.frame(col1 = NA)
> temp[1,] = as.factor("hello")
> str(temp)
'data.frame': 1 obs. of 1 variable:
$ col1: int 1