【发布时间】:2015-02-07 23:51:27
【问题描述】:
我有一个数据集,其中包含一些在 CSV 中列为 dd/mm/yy 的日期,我的最终目标是将年份列分离到一个单独的列中,但它似乎给了我一些非常奇怪的结果。
当 CSV 输入到 R 中时,数据集 (dframe1) 会自动将日期显示为因子,例如05 年 8 月 3 日,但并非全部采用这种格式,有些是 2005 年 8 月 3 日,有些是 2005 年 8 月 3 日(应该是这样),这意味着当我转换它们时,一些日期即将到来像他们应该的那样(即2004-11-5),有些出来真的很奇怪(即0004-11-5)..我检查了excel电子表格,它们的格式都完全相同,写的一样等等,转换的代码完全一样,但它似乎不起作用。
以下是我导入 R 的示例,尽管在 excel 中它们都是相同的:
2 11/11/04
3 11/11/04
4 11/11/04
5 11/11/04
6 11/11/04
7 11/11/04
8 11/11/04
9 11/11/04
10 5/3/05
11 5/3/05
12 5/3/05
13 5/3/05
14 5/3/05
15 5/3/05
16 5/3/05
17 3/11/05
18 3/11/05
19 3/11/05
20 3/11/05
21 3/11/05
22 3/11/05
23 3/11/05
24 3/11/05
25 3/11/05
26 3/11/05
27 9/6/06
28 9/6/06
29 9/6/06
30 9/6/06
31 9/6/06
32 9/6/06
33 9/6/06
34 9/6/06
35 11/8/06
36 11/8/06
37 11/8/06
38 11/8/06
39 11/8/06
40 11/8/06
41 11/8/06
42 11/8/06
43 22/02/2007
44 22/02/2007
45 22/02/2007
46 22/02/2007
47 22/02/2007
48 22/02/2007
49 22/02/2007
50 7/2/08
51 7/2/08
52 7/2/08
53 7/2/08
54 7/2/08
55 7/2/08
56 8/5/08
57 8/5/08
58 8/5/08
59 8/5/08
60 25/03/2012
61 25/03/2012
62 25/03/2012
63 25/03/2012
64 25/03/2012
65 25/03/2012
我想用来转换的代码如下:
数据 = dframe1
Set.date、Haul.date、Date.depart 和 Date.return 都是 dframe1 中的列
首先我确保 R 知道日期列实际上是日期(而不是因素,自动假设)
dframe1$Set.date <- as.Date(dframe1$Set.date,"%d/%m/%Y")
dframe1$Haul.date <- as.Date(dframe1$Haul.date, format ="%d/%m/%Y")
dframe1$Date.depart <- as.Date(dframe1$Date.depart, format ="%d/%m/%Y")
dframe1$Date.return <- as.Date(dframe1$Date.return, format ="%d/%m/%Y")
接下来我要分离并添加一列年份(也可以使用日期和月份,但这次不会打扰)
dframe1$Set.year <- format(dframe1$Set.date[1], "%Y")
dframe1$Haul.year <- format(dframe1$Haul.date[1], "%Y")
dframe1$Year.depart <- format(dframe1$Date.depart[1], "%Y")
dframe1$Year.return <- format(dframe1$Date.return[1], "%Y")
【问题讨论】:
-
从文本文件中发布足够的材料以进行测试,
-
我发布了一个我想从中提取的专栏。谢谢!
标签: r excel date date-conversion as.date