2014-11-05 3 views
1

У меня есть соединение, которое выводит данные из slq с форматом datetime. Мне нужно также сохранить часть времени.R POSIXct нельзя использовать в sql-запросе

head(llamMitUadm$responseTime) 
[1] "2014-10-07 08:00:33.780" "2014-10-07 08:01:17.813" "2014-10-07 08:01:19.450" 
[4] "2014-10-07 08:01:34.773" "2014-10-07 08:01:54.950" "2014-10-07 08:02:08.607" 

> class(llamMitUadm$responseTime) 
[1] "character" 

Тогда я преобразовать его в DateTime:

llamMitUadm$responseTime1<-strptime(llamMitUadm$responseTime, format="%Y-%m-%d %H:%M:%S") 

> class(llamMitUadm$responseTime1) 
[1] "POSIXlt" "POSIXt" 

> head(llamMitUadm$responseTime1) 
[1] "2014-10-07 08:00:33 ART" "2014-10-07 08:01:17 ART" "2014-10-07 08:01:19 ART" 
[4] "2014-10-07 08:01:34 ART" "2014-10-07 08:01:54 ART" "2014-10-07 08:02:08 ART" 

The Мне нужно сделать запрос SQL, и я получаю следующее сообщение об ошибке:

Error in sqliteSendQuery(conn, statement, bind.data) : 
    RAW() can only be applied to a 'raw', not a 'double' 

я прочитал, что это связано с POSIXt. Как я могу сохранить время и выполнить запрос?

Altought Я знаю, что не связан с запросом, я добавил воспроизводимый пример:

data<-data.frame(date=c("2014-10-07 08:00:33.780","2014-10-07 08:01:17.813","2014-10-07 08:01:19.450")) 


> class(data$date) 
[1] "factor" 

data$date<-as.character(data$date) 
> class(data$date) 
[1] "character" 


data$date1<-strptime(data$date, format="%Y-%m-%d %H:%M:%S") 
    > class(data$date1) 
    [1] "POSIXlt" "POSIXt" 

library(sqldf) 
> sqldf("Select * from data") 
Error in sqliteSendQuery(conn, statement, bind.data) : 
    RAW() can only be applied to a 'raw', not a 'double' 
+0

Итак, вы хотите, чтобы мы помогли вам отладить SQL-запрос, который вы не хотите включать в свой вопрос? Это .... амбициозно. – joran

+0

@joran Я читал, что проблема связана с классом POSIX, запрос в порядке. – GabyLP

+0

Я был все поставлен, чтобы попытаться помочь, но если вы откажетесь предоставить даже самую основную информацию, я просто сделаю что-то еще. – joran

ответ

2

POSIXlt является список, поэтому не могу В храниться в кадре данных. Я решил это с помощью:

as.POSIXct(llamMitUadm$responseTime) 
Смежные вопросы