将数字转换为日期问题
Converting numeric to date issues
我有一个日期列,数字如下
Date1
4010
5178
5494
6750
7106
39
39
172
1704
4152
我正在尝试使用此函数将其转换为实际日期
as.Date(df$Date1, origin = "1970-01-01")
但是我发现这些数字被转换为这些不正确的日期。
Date1_Converted
1980-12-24
1984-03-26
1985-01-16
1988-06-25
1989-06-16
1970-02-09
1970-02-09
1970-06-22
1974-09-01
1981-05-15
正确的转换应该是
Date1_CrctTrnsf
2005.10.31
2009.02.11
2009.12.04
2013.05.15
2014.05.06
1994.02.22
1994.02.22
1994.08.03
1999.05.03
2006.03.22
我假设这是一个起源问题,不确定如何解决这个问题,非常感谢任何关于如何解决这个问题的帮助。
# First I copied the data from your question
df <- read.table(con <-file("clipboard"), header = T)
df
# Convert the format
df1 <- as.Date(df$Date1, origin = "1994-11-08")
df1
> as.data.frame(gsub("-", ".", df1))
gsub("-", ".", df1)
1 2005.10.31
2 2009.01.11
3 2009.11.23
4 2013.05.02
5 2014.04.23
6 1994.12.17
7 1994.12.17
8 1995.04.29
9 1999.07.09
10 2006.03.22
但是请注意,数据中似乎有错误(或者至少是您期望从数据中获得的结果——您是如何生成这些数字的?):
- 第 6 行的输入是 39
- 第 7 行的输入是 39 和
- 第 8 行的输入是 172
172 - 39 = 133
但是您希望第 6 行和第 7 行的日期为 1994.02.22
,而第 8 行的结果为 1994.08.03
。 这在数学上是不可能的,因为这两个日期之间有 162 天。
我有一个日期列,数字如下
Date1
4010
5178
5494
6750
7106
39
39
172
1704
4152
我正在尝试使用此函数将其转换为实际日期
as.Date(df$Date1, origin = "1970-01-01")
但是我发现这些数字被转换为这些不正确的日期。
Date1_Converted
1980-12-24
1984-03-26
1985-01-16
1988-06-25
1989-06-16
1970-02-09
1970-02-09
1970-06-22
1974-09-01
1981-05-15
正确的转换应该是
Date1_CrctTrnsf
2005.10.31
2009.02.11
2009.12.04
2013.05.15
2014.05.06
1994.02.22
1994.02.22
1994.08.03
1999.05.03
2006.03.22
我假设这是一个起源问题,不确定如何解决这个问题,非常感谢任何关于如何解决这个问题的帮助。
# First I copied the data from your question
df <- read.table(con <-file("clipboard"), header = T)
df
# Convert the format
df1 <- as.Date(df$Date1, origin = "1994-11-08")
df1
> as.data.frame(gsub("-", ".", df1))
gsub("-", ".", df1)
1 2005.10.31
2 2009.01.11
3 2009.11.23
4 2013.05.02
5 2014.04.23
6 1994.12.17
7 1994.12.17
8 1995.04.29
9 1999.07.09
10 2006.03.22
但是请注意,数据中似乎有错误(或者至少是您期望从数据中获得的结果——您是如何生成这些数字的?):
- 第 6 行的输入是 39
- 第 7 行的输入是 39 和
- 第 8 行的输入是 172
172 - 39 = 133
但是您希望第 6 行和第 7 行的日期为 1994.02.22
,而第 8 行的结果为 1994.08.03
。 这在数学上是不可能的,因为这两个日期之间有 162 天。