複数の日付と時刻を解析する必要があります。助けのためのdplyrの日付時刻を解析する
call.times time.1 time.2 date.called
1 912 0000-02-28 09:12:00 <NA> 28-Feb
2 1513 2016-10-01 15:13:00 <NA> 10/1/16
3 922, 1810 2015-08-13 09:22:00 2015-08-13 18:10:00 8/13/15
ありがとう:
call.times time.1 time.2 date.called
1 912 -62162174880 <NA> 28-Feb
2 1513 1475334780 <NA> 10/1/16
3 922, 1810 1439457720 1439489400 8/13/15
代わりに、私はこの出力を生成しようとしている:
library(dplyr)
library(tidyr)
library(lubridate)
date.called <- c("28-Feb","10/1/16","8/13/15")
call.times <- c("912","1513","922, 1810")
df<- data.frame(call.times,date.called,stringsAsFactors = F)
df <- df %>%
separate(call.times, c("time.1", "time.2"), sep = "\\,", remove=FALSE) %>%
mutate(time.1 = trimws(time.1), time.2 = trimws(time.2))
#parse each new date and time
df %>% mutate(time.1 = ifelse(!is.na(time.1) ,
parse_date_time(sprintf("%s %04s", date.called,
gsub('^([0-9]+)([0-9]{2})$', '\\1:\\2', time.1)),
c('%m/%d/%y %H:%M','%d-%b %H%M')), time.1),
time.2 = ifelse(!is.na(time.2) ,
parse_date_time(sprintf("%s %04s", date.called,
gsub('^([0-9]+)([0-9]{2})$', '\\1:\\2', time.2)),
c('%m/%d/%y %H:%M','%d-%b %H%M')), time.2))
私はDFのために次のような出力が得られます。ここでは一例です。
'、これあなたが数値の代わりに、日付で終わる(ifelse''?)の属性を取り除きifelse' 。だから、もしあなたがあなたのアプローチに固執したいなら、 'as.POSIXct(...、origin =" 1970-01-01 "、tz =" UTC ")'にそれをラップする必要があります.- – lukeA