我已将这种形式的信息保存在变量'fechas'
中"09/03/2013 10:59:21 PM"
"09/03/2013 10:58:19 PM"
"09/03/2013 10:57:06 PM"
"09/03/2013 10:55:31 PM"
"09/03/2013 10:52:34 PM"
"09/03/2013 10:51:10 PM"
"09/03/2013 10:45:06 PM"
"09/03/2013 10:18:53 PM"
"09/03/2013 10:10:47 PM"
"09/03/2013 10:00:28 PM"
"09/03/2013 09:57:42 PM"
"09/03/2013 09:32:32 PM"
我能够分开日期,但我无法让时间与AM或PM相对应。
我试过了。
horas <- strsplit(fechas,"2013 ")
但他们也分配了2014年和2015年。 我怎样才能获得具有相应AM / PM模拟时间的小时?
答案 0 :(得分:3)
转换为日期/时间,然后根据需要返回format
:
format(as.POSIXct(x, format="%d/%m/%Y %I:%M:%S %p"), "%I:%M:%S %p")
# [1] "10:59:21 PM" "10:58:19 PM" "10:57:06 PM" "10:55:31 PM" "10:52:34 PM" "10:51:10 PM"
# [7] "10:45:06 PM" "10:18:53 PM" "10:10:47 PM" "10:00:28 PM" "09:57:42 PM" "09:32:32 PM"
或使用?regex
提取您需要的部分:
sub("^.+ (\\d{2}:\\d{2}:\\d{2} (A|P)M)", "\\1", x)
#or:
sub(".+/\\d{4} (.+)", "\\1", x)
或使用正则表达式删除不需要的部分:
sub(".+/\\d{4} ", "", x)
或者在代表四年数字的/YYYY
上拆分:
strsplit(x, "(?<=/\\d{4}) ", perl=TRUE)
#[[1]]
#[1] "09/03/2013" "10:59:21 PM"
#
#[[2]]
#[1] "09/03/2013" "10:58:19 PM"
# ...
或者@Henrik指出,对于这个简单的情况,你可以使用substring
从第12个字符开始抓取所有内容:
substring(x,12)
答案 1 :(得分:2)
然后只是对字符串进行子集化。
substr(c, 12,22)
或者如果您需要返回值列表。
newList<-sapply(ListOfTimes, substr, 12,22)