0

我在处理 R 中的一些时间序列数据时遇到了问题。

a <- c(1:6)
b <- c("05/12/2012 05:00","05/12/2012 06:00","06/12/2012 05:00",
       "06/12/2012 06:00", "07/12/2012 09:00","07/12/2012 07:00")
c <-c("0","0","0","1","1","1")
df1 <- data.frame(a,b,c,stringsAsFactors = FALSE)
df1$b <- strptime(df1$b, "%d/%m/%Y %H:%M")

我正在使用 R Studio(版本 0.97.314)。当我运行最后一行代码,将 b 转换为日期变量,然后尝试在工作区窗口中查看此数据框时,R Studio 中止。

在这里报告了这个问题,并被告知它是 R 的损坏版本。但是,我在另一台 Windows 电脑上运行了相同的代码,我遇到了同样的问题。我还向 R Studio 的支持人员发送了电子邮件,他们告诉我会话由于我使用的 R 代码而中止。我已经重新安装了 R 和 R Studio(并更新到 R Studio 的最新版本),但仍然遇到同样的问题。任何人都可以建议任何其他解决方案吗?

当我尝试使用我的真实数据时,我遇到了一个稍微不同的问题。当我运行代码以正确格式化日期时,我的日期列已转换为许多零。其他八行只是数字列表。当我使用 dput() 输出我的数据帧的前四行时,我得到了这个:

structure(list(Date = structure(list(sec = c(0, 0, 0, 0), min = c(40L, 
42L, 44L, 46L), hour = c(18L, 18L, 18L, 18L), mday = c(14L, 14L, 
14L, 14L), mon = c(11L, 11L, 11L, 11L), year = c(112L, 112L, 
112L, 112L), wday = c(5L, 5L, 5L, 5L), yday = c(348L, 348L, 348L, 
348L), isdst = c(0L, 0L, 0L, 0L)), .Names = c("sec", "min", "hour", 
"mday", "mon", "year", "wday", "yday", "isdst"), class = c("POSIXlt", 
"POSIXt")), LATITUDE = c(54.77769505, 54.77700313, 54.77770803, 
54.77830731), LONGITUDE = c(-1.56627049, -1.57128976, -1.57544758, 
-1.58108564), HEIGHT = c(" 173.911 M", " 94.833 M", " 137.995 M", 
" 101.871 M"), SPEED = c(" 0.465 km/h", " 10.164 km/h", " 9.129 km/h", 
" 6.340 km/h")), .Names = c("Date", "LATITUDE", "LONGITUDE", 
"HEIGHT", "SPEED"), row.names = c(1L, 13L, 25L, 37L), class = "data.frame")

我希望确保日期格式正确的唯一原因是因为我希望使用以下代码摆脱某个时间点之后的观察:

gps <- subset(gps, Date > strptime("14/12/2012 19:00", "%d/%m/%Y %H:%M"))

我之前使用以下格式格式化了本地时间和日期列:

gps <- transform(gps, Date=format(as.POSIXct(paste(LOCAL.DATE, LOCAL.TIME)), "%d/%m/%Y %H:%M"))

但是我收到错误消息:

Date > strptime("14/12/2012 19:00", "%d/%m/%Y %H:%M") 中的错误:未实现这些类型的比较另外:警告消息:1:在eval(expr, envir, enclos) : 不兼容的方法 ("Ops.factor", "Ops.POSIXt") for ">" 2: In Date > strptime("14/12/2012 19:00", "%d/ %m/%Y %H:%M") : 较长的对象长度不是较短对象长度的倍数

非常感谢。

4

0 回答 0