Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中转换和分离日期时出现问题_R_Excel_Date_Date Conversion_As.date - Fatal编程技术网

在R中转换和分离日期时出现问题

在R中转换和分离日期时出现问题,r,excel,date,date-conversion,as.date,R,Excel,Date,Date Conversion,As.date,我有一个数据集,其中包含CSV中列出的一些日期,如dd/mm/yy,我的最终目标是将年份列分离为一个单独的列,但它似乎给了我一些非常奇怪的结果 当CSV输入到R中时,数据集(dframe1)会自动将日期显示为因子,例如8/3/05,但它们并非都是这种格式,有些是8/3/2005,有些是08/03/2005(应该是这样),这意味着当我转换它们时,有些日期会像它们应该的那样出现(即2004-11-5)有些人的表现非常奇怪(即0004-11-5)。。我检查了excel电子表格,它们的格式都完全相同,用

我有一个数据集,其中包含CSV中列出的一些日期,如dd/mm/yy,我的最终目标是将年份列分离为一个单独的列,但它似乎给了我一些非常奇怪的结果

当CSV输入到R中时,数据集(dframe1)会自动将日期显示为因子,例如8/3/05,但它们并非都是这种格式,有些是8/3/2005,有些是08/03/2005(应该是这样),这意味着当我转换它们时,有些日期会像它们应该的那样出现(即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
我想要用来转换的代码如下:

数据=数据帧1

Set.date、Haul.date、date.depart和date.return都是dframe1中的列

首先,我要确保R知道日期列实际上是日期(而不是自动假设的因素)


dframe1$Set.date首先,Excel不会显示CSV文件中日期/时间字符串的实际文本格式,而是将其转换为Excel格式进行显示。您应该在文本编辑器中打开CSV并查看其中的日期以验证格式

其次,您可以使用
lubridate
软件包使处理日期/时间变得更加容易。例如,您可以执行以下操作:

library(lubridate)

dframe1$Set.date <- dmy(dframe1$Set.date)

dframe1$Set.year <- year(dframe1$Set.date)
库(lubridate)

dframe1$Set.date首先,Excel不会显示CSV文件中日期/时间字符串的实际文本格式,而是将其转换为Excel格式显示。您应该在文本编辑器中打开CSV并查看其中的日期以验证格式

其次,您可以使用
lubridate
软件包使处理日期/时间变得更加容易。例如,您可以执行以下操作:

library(lubridate)

dframe1$Set.date <- dmy(dframe1$Set.date)

dframe1$Set.year <- year(dframe1$Set.date)
库(lubridate)

dframe1$Set.date首先,Excel不会显示CSV文件中日期/时间字符串的实际文本格式,而是将其转换为Excel格式显示。您应该在文本编辑器中打开CSV并查看其中的日期以验证格式

其次,您可以使用
lubridate
软件包使处理日期/时间变得更加容易。例如,您可以执行以下操作:

library(lubridate)

dframe1$Set.date <- dmy(dframe1$Set.date)

dframe1$Set.year <- year(dframe1$Set.date)
库(lubridate)

dframe1$Set.date首先,Excel不会显示CSV文件中日期/时间字符串的实际文本格式,而是将其转换为Excel格式显示。您应该在文本编辑器中打开CSV并查看其中的日期以验证格式

其次,您可以使用
lubridate
软件包使处理日期/时间变得更加容易。例如,您可以执行以下操作:

library(lubridate)

dframe1$Set.date <- dmy(dframe1$Set.date)

dframe1$Set.year <- year(dframe1$Set.date)
库(lubridate)

dframe1$Set.date如果您的所有日期都在过去14年内,那么这应该可以:

dat$dat2 <- gsub("/([0-9]{2})$", "/20\\1", dat$date)
library(lubridate)

dat$dat3 <- dmy(dat$dat2)

dat$dat2如果您的所有日期都在过去14年内,那么这应该可以:

dat$dat2 <- gsub("/([0-9]{2})$", "/20\\1", dat$date)
library(lubridate)

dat$dat3 <- dmy(dat$dat2)

dat$dat2如果您的所有日期都在过去14年内,那么这应该可以:

dat$dat2 <- gsub("/([0-9]{2})$", "/20\\1", dat$date)
library(lubridate)

dat$dat3 <- dmy(dat$dat2)

dat$dat2如果您的所有日期都在过去14年内,那么这应该可以:

dat$dat2 <- gsub("/([0-9]{2})$", "/20\\1", dat$date)
library(lubridate)

dat$dat3 <- dmy(dat$dat2)

dat$dat2谢谢@Ajar!这很有帮助。我在文本编辑器中打开了文件,事实上你是对的,日期的格式不同。有没有一种方法可以让所有的日期格式保持一致,或者我必须在文本编辑中手动完成?这取决于它们的不同程度。如果唯一的区别是2004年5月8日和2004年5月8日,那么ymd()将以相同的方式解析这两种情况。谢谢@Ajar!这很有帮助。我在文本编辑器中打开了文件,事实上你是对的,日期的格式不同。有没有一种方法可以让所有的日期格式保持一致,或者我必须在文本编辑中手动完成?这取决于它们的不同程度。如果唯一的区别是2004年5月8日和2004年5月8日,那么ymd()将以相同的方式解析这两种情况。谢谢@Ajar!这很有帮助。我在文本编辑器中打开了文件,事实上你是对的,日期的格式不同。有没有一种方法可以让所有的日期格式保持一致,或者我必须在文本编辑中手动完成?这取决于它们的不同程度。如果唯一的区别是2004年5月8日和2004年5月8日,那么ymd()将以相同的方式解析这两种情况。谢谢@Ajar!这很有帮助。我在文本编辑器中打开了文件,事实上你是对的,日期的格式不同。有没有一种方法可以让所有的日期格式保持一致,或者我必须在文本编辑中手动完成?这取决于它们的不同程度。如果唯一的区别是2004年5月8日和2004年5月8日,那么ymd()将以相同的方式解析这两个方面。从文本文件中发布足够的材料以允许测试,我已经发布了一个我试图从中提取的专栏。谢谢从文本文件中发布足够的材料以允许测试,我已经发布了一个我试图从中提取的专栏。谢谢从文本文件中发布足够的材料以允许测试,我已经发布了一个我试图从中提取的专栏。谢谢从文本文件中发布足够的材料以允许测试,我已经发布了一个我试图从中提取的专栏。谢谢