R中的日期转换 | 珊瑚贝

Date Transformation in R


我遇到了一个很小的问题,但不知何故无法解决。

当我导入具有日期的 csv 文件时,日期将以 “%Y-%m-%d” 格式出现。但我希望它采用 “%d-%m-%Y” 格式。我试过 “as.Date” 来改造它。但它不起作用。

导入后的数据结构如下:

1
2
3
4
5
6
Date        Share_Val
21/01/2015   20
22/01/2015   19
23/01/2015   21
24/01/2015   23
25/01/2015   26

但是当我通过 read.csv 导入文件时,数据如下所示:

1
2
3
4
5
6
Date        Share_Val
01/21/2015   20
01/22/2015   19
01/23/2015   21
01/24/2015   23
01/25/2015   26

我试过润滑。但它没有帮助。
山姆的结果正是我想要的方式。但是当我尝试以下操作时,它不会来

1
data$date<-format(as.Date(data$date,”%m/%d/%Y”))

谁能给我一些建议?

  • 你能举一个更精确的例子,比如你看到的输入字符串吗?
  • 查看包 lubridate
  • format(as.Date(“2015-09-21″),”%d-%m-%Y”)
  • 谢谢大家的意见。我已经在问题本身中回复了所有人的建议,因为弗兰克想要更准确一点。
  • @SamThomas 的格式似乎有点偏离 “/” vs “-“。但是 format(as.Date(“21/01/2015″),”%d/%m/%Y”) 应该可以工作…尽管正如弗兰克所说,您的问题没有得到清楚的描述。
  • @Alex:感谢 Alex 的建议!我试图举一个小例子来解释我的问题。当我参加 1 次date时,山姆的回答有效。但是如何转换 “Date” 变量中的所有日期。
  • @Alex 我的评论是在示例数据之前发表的
  • 21/01/2015 是长度为 1 的字符向量。将其替换为您的日期向量


看看这是否有帮助。注意 stringsAsFactors。如果您的 Date 字段是一个因素,您将需要 data$Date <- as.character(data$Date) first

1
2
3
4
5
6
data <- data.frame(Date = c(“21/01/2015″,”22/01/2015″,”23/01/2015”,
       “24/01/2015″,”25/01/2015”), Share_Val=c(20, 19, 21, 23, 26),
         stringsAsFactors=F)

format(as.Date(data$Date,”%d/%m/%Y”),”%d-%m-%Y”)
[1]”21-01-2015″”22-01-2015″”23-01-2015″”24-01-2015″”25-01-2015″

  • 非常感谢山姆!你的回答非常好。再次感谢。


评论太长了。

我认为您可能误解了日期在 R 中的工作方式。类 Date 的变量(或列)在内部存储为自 1970 年 1 月 1 日以来的天数。当您打印 Date 变量时,它使用 %Y-%m-%d 格式显示。 as.Date(…) 函数将字符转换为日期。 format=… 参数控制如何解释字符串,而不是如何显示结果,如:

1
2
3
4
as.Date(“02/05/2015″, format=”%m/%d/%Y”)
# [1]”2015-02-05″
as.Date(“02/05/2015″, format=”%d/%m/%Y”)
# [1]”2015-05-02″

因此,在第一种情况下,字符串被解释为 2 月 5 日,第二个是 5 月 2 日。请注意,在这两种情况下,结果都以 %Y-%m-%d 格式显示(打印)。

  • 谢谢杰霍华德!我没有意识到这一点。这真的很有帮助,即使没有完全回答我的问题。再次感谢。


来源:https://www.codenong.com/32698701/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9947.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?