R中write.csv中的日期时间

时间:2013-04-29 12:27:48

标签: r date csv xts posixct

我的数据框名为“data”,后面有一列

>  2007-01-02 10:02:00
   2007-01-02 10:03:00
   2007-01-02 10:04:00
   2007-01-02 10:05:00
   2007-01-02 10:06:00
   2007-01-02 10:07:00

当我使用write.csv(data,“Data.csv”,row.names = F)和csv打开时保存数据

>  Column1            Column2
  2007-01-02    10:02:00
  2007-01-02    10:03:00
  2007-01-02    10:04:00
  2007-01-02    10:05:00
  2007-01-02    10:06:00
  2007-01-02    10:07:00

当我使用read.csv(“Data.csv”)再次导入R中的数据时。它显示了确切的数据格式。

>  2007-01-02 10:02:00
   2007-01-02 10:03:00
   2007-01-02 10:04:00
   2007-01-02 10:05:00
   2007-01-02 10:06:00
   2007-01-02 10:07:00

我不知道excel如何在2个单独的列中显示日期和时间,而datetime列实际上是1列。如何以csv格式获取1列中的日期时间?

3 个答案:

答案 0 :(得分:1)

如何将csv文件导入Excel?它通常会提供一个对话框,您可以指定分隔符等。我的猜测是您将分隔符设置为空格而不是逗号。

答案 1 :(得分:0)

尝试使用write.table并使用sep = ","。我在LibreOffice Calc中打开了生成的.csv文件,它工作正常(尽管事实上LibreOffice根据德国惯例重新格式化datetime列...)。

这是我的代码:

# Sample data
data <- as.data.frame(strptime(c("2007-01-02 10:02:00",
          "2007-01-02 10:03:00",
          "2007-01-02 10:04:00",
          "2007-01-02 10:05:00",
          "2007-01-02 10:06:00",
          "2007-01-02 10:07:00"), format = "%Y-%m-%d %H:%M:%S"))
names(data) <- "datetime"

# Write table
write.table(data, "Data.csv", sep = ",", col.names = FALSE, row.names = FALSE)

# Read table
read.csv("Data.csv", header = FALSE) 

答案 2 :(得分:0)

您的日期应存储为as.character(as.Date()),然后才能导出到Excel