1

有没有一种方法可以使用 RSQLite 将 R 数据框中的日期存储为 SQLite 中的字符串?目前,日期列存储为整数。在写入 SQLite 之前,我可能可以将所有日期转换为字符串,但是由于我需要从数据框是参数之一的函数写入 SQLite,因此我希望避免这种转换。

library('RSQLite')

df <- data.frame(
        x=1:3, 
        y=as.Date(c('2011-01-01','2011-03-03','2011-12-31'))
      )

df

# Create connection and temporary database
sqlite <- dbDriver("SQLite")
tmpdb  <- dbConnect(sqlite,"__this_is_temporary_db__.db")           

# Write data    
dbWriteTable(tmpdb,'df',df)

# We get integers from date
dbGetQuery(tmpdb,'select * from df')

dbDisconnect(tmpdb)      

# file.remove('__this_is_temporary_db__.db')
4

1 回答 1

3

你应该强迫性格。您可以使用以下方法对所有 data.frame 日期列执行此操作:

ll <- lapply(df,function(x) 
     if(inherits (x,c('POSIXct','Date'))
       as.character(x)
     else x))
do.call(rbind.data.frame,ll)
于 2013-12-13T13:42:20.457 回答