RSQLite - 将日期列存储为SQLite中的字符

时间:2013-12-13 12:50:59

标签: r rsqlite

有没有办法如何使用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')

1 个答案:

答案 0 :(得分: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)