2017-11-14 10 views
1

여러 개의 날짜 - 시간 열이 있고 나는 붙여 넣기/I가 복사하면 내가 일을이 방법을 얻을 수있는 시간대 CEST사용 그렙은

dat <- structure(c(1491199401.363, 1491201912.62, 1491205392.67, 1491205933.457, 1491206198.027, 1491206802.243), class = c("POSIXct", "POSIXt"), tzone = "") 
dat 
#[1] "2017-04-03 08:03:21 CEST" "2017-04-03 08:45:12 CEST" [3] 
#"2017-04-03 09:43:12 CEST" "2017-04-03 09:52:13 CEST" [5] "2017-04-03 
#09:56:38 CEST" "2017-04-03 10:06:42 CEST" 

any(grep("CEST", dat)) 
#[1] FALSE 
any(grep("CEST", "2017-04-03 08:03:21 CEST")) 
#[1] TRUE 

을에 그들 중 어떤 확인해야 요소를 grep 함수에 넣지 만 벡터 자체에서 실행하면 안됩니다. as.character(dat)을 사용하면 작동하지 않습니다. 어떻게해야합니까?

답변

0

우리는 format와 시간대를 추출하고

"CEST" %in% format(dat, format="%Z") 
#[1] TRUE 

를 얻을 수 %in%를 사용하거나 다른 옵션은 POSIXlt로 변환 한 후 unclass로하고 zone

"CEST" %in% unclass(as.POSIXlt(dat))$zone 
#[1] TRUE 

에서 추출 할 수 있습니다 영업 이익이 grep 인 단일 요소가 ping이 character c 인 경우 ~ datPOSIXct 클래스입니다. 따라서 grep을 사용하여 부분 문자열을 찾을 수 있습니다. 하더라도, 우리는 즉

as.character(dat) 
#[1] "2017-04-03 08:03:21" "2017-04-03 08:45:12" "2017-04-03 09:43:12" "2017-04-03 09:52:13" "2017-04-03 09:56:38" "2017-04-03 10:06:42" 

따라서 grep

grepl("CEST", as.character(dat)) 
#[1] FALSE FALSE FALSE FALSE FALSE FALSE 
를 선택 할 수 없습니다이 속성을 잃게됩니다, character에 'DAT'을 변환