我有每小时的天气数据。我从这里看到了函数示例:http://casoilresource.lawr.ucdavis.edu/drupal/node/991
我正在更改代码来计算机场数据,该数据具有不同的网址类型。机场天气数据的另一个问题是时间数据以12小时格式保存。以下是数据样本:
14 10:43 AM
15 10:54 AM
16 11:54 AM
17 12:07 PM
18 12:15 PM
19 12:54 PM
20 1:54 PM
21 2:54 PM
这是我尝试的内容:(我发现只使用'PM'并不够小心,因为如果他们通过这个alg,12到下午1点之间的任何时间都会关闭)
date<-Sys.Date()
data$TimeEST<-strsplit(data$TimeEST, ' ')
for (x in 1:35){
if('AM' %in% data$TimeEST[[x]]){
gsub('AM','',data$TimeEST[[x]])
data$TimeEST[[x]]<-str_trim(data$TimeEST[[x]])
data$TimeEST[[x]]<-str_c(date,' ',data$TimeEST[x],':',data$TimeEST[2])
}
else if('PM' %in% data$TimeEST[[x]]){
data$TimeEST[[x]]<-gsub('PM', '',data$TimeEST[[x]])
data$TimeEST[[x]]<-strsplit(data$TimeEST[[x]], ':')
data$TimeEST[[x]][[1]][1]<-as.integer(data$TimeEST[[x]][[1]][1])+12
data$TimeEST[[x]]<-str_trim(data$TimeEST[[x]][[1]])
data$TimeEST[[x]]<-str_c(date, " ", data$TimeEST[[x]][1],':',data$TimeEST[[x]][2])
}
}
任何帮助?
答案 0 :(得分:15)
strptime
会有效吗?
df2= structure(c("10:43 AM", "10:54 AM", "11:54 AM", "12:07 PM", "12:15 PM",
"12:54 PM", "1:54 PM", "2:54 PM"), .Dim = c(8L, 1L))
strptime(df2, "%I:%M %p" )
或者如果您不想要日期,请执行以下操作: 虽然这取决于你想要什么类的课程。
substr(strptime(df2, "%I:%M %p" ),11,19)
答案 1 :(得分:4)
看看?strptime
。
as.POSIXct(data$TimeEST, format='%I:%M %p')