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