如何防止R中的'write.csv'将DATE列从[YYYY-MM-DD]格式转换为[MM / DD / YYYY]格式

时间:2016-10-30 22:23:13

标签: r

我希望使用“ - ”而不是“/”来保留Date列的格式。目前end会自动进行上述转换,但我没有找到任何方法来阻止这种情况发生。要重新创建此问题,我使用了免费的xRange数据集

write.csv

1 个答案:

答案 0 :(得分:2)

正如大卫已经说过的那样,你遇到了一个常见的错误:

R> library(hflights)
R> hf2 <- hflights[1:5,1:5]
R> hf2$New_Date = paste0(hf2$Year,"-",hf2$Month,"-",hf2$DayofMonth)
R> write.csv(hf2,"/tmp/hflights2.csv")
R> system("cat /tmp/hflights2.csv")
"","Year","Month","DayofMonth","DayOfWeek","DepTime","New_Date"
"5424",2011,1,1,6,1400,"2011-1-1"
"5425",2011,1,2,7,1401,"2011-1-2"
"5426",2011,1,3,1,1352,"2011-1-3"
"5427",2011,1,4,2,1403,"2011-1-4"
"5428",2011,1,5,3,1405,"2011-1-5"
R> 

这里有几个问题:

  1. 没有错误。 R写下了你告诉它的确切内容。

  2. 有一个微妙的错误。您将日期重新格式化为字符串。这几乎总是一个可怕的想法。让类型感知代码处理此问题。

  3. 即使用Date-parsing代码从组件构造日期,然后使用该日期类型格式化您喜欢的任何形式。对于日期,强烈建议使用两位数的月份和日期。