Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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_Date - Fatal编程技术网

R不了解子集中的日期

R不了解子集中的日期,r,date,R,Date,我的代码有一个小问题,我不明白。我已经使用R很多年了,但这对我来说是一个新问题 我有一个带有日期的数据框(sdata),我想查看它对应于另一个数据框的哪一行(meteo),请参见下面的示例: 与: 及 我遇到了以下问题: Browse[2]> sdata$Ripeness[1] [1] "1997-07-27" Browse[2]> sdata$Ripeness[2] [1] "1998-07-29" Browse[2]> sdata$Ripeness[3] [1] "1999

我的代码有一个小问题,我不明白。我已经使用R很多年了,但这对我来说是一个新问题

我有一个带有日期的数据框(sdata),我想查看它对应于另一个数据框的哪一行(meteo),请参见下面的示例:

与:

我遇到了以下问题:

Browse[2]> sdata$Ripeness[1]
[1] "1997-07-27"
Browse[2]> sdata$Ripeness[2]
[1] "1998-07-29"
Browse[2]> sdata$Ripeness[3]
[1] "1999-08-02"
Browse[2]> which(meteo$Date==sdata$Ripeness[1])
integer(0)
Browse[2]> which(meteo$Date==sdata$Ripeness[2])
integer(0)
Browse[2]> which(meteo$Date==sdata$Ripeness[3])
[1] 6788
Browse[2]> which(meteo$Date==sdata$Ripeness[4])
[1] 7146
Browse[2]> which(meteo$Date=="1997-07-27")
[1] 6052
Browse[2]> which(meteo$Date=="1998-07-29")
[1] 6419

Browse[2]> str(sdata$Ripeness[1])
 Date[1:1], format: "1997-07-27"
Browse[2]> str(sdata$Ripeness[2])
 Date[1:1], format: "1998-07-29"

出于某种原因,R不喜欢sdata$成熟的前两次出现,有人遇到过这样的问题吗?如果是这样,如何解决这个问题?

出于某种原因,R决定在日期中添加一个时间(只有在查看POSIXct时才可见):

Browse[2]> as.POSIXct(sdata$Ripeness)
[1] "1997-07-27 14:00:00 CEST" "1998-07-29 18:00:00 CEST" "1999-08-02 02:00:00 CEST" "2000-07-25 02:00:00 CEST"
因此,解决办法是:

as.Date(as.character(sdata$Ripeness))

您能否共享
dput(sdata$summeess[1])
dput(meteo[6788,“Date”])
?它们是否相同?不要用字符比较日期(或日期时间)。使用
meteo$Date==as.Date(“1997-07-27”)
。原因可能在于您如何创建这些日期。在内部,
Date
对象只是自原始日期起的日期数。该数字不需要是整天,例如,
x
Browse[2]> as.POSIXct(sdata$Ripeness)
[1] "1997-07-27 14:00:00 CEST" "1998-07-29 18:00:00 CEST" "1999-08-02 02:00:00 CEST" "2000-07-25 02:00:00 CEST"
as.Date(as.character(sdata$Ripeness))