2014-04-15 11 views
6

Załóżmy, że mam zmiennej jak tenJak usunąć ciąg pola czasowego ze zmiennej daty i znaku?

c<-c("9/21/2011 0:00:00", "9/25/2011 0:00:00", "10/2/2011 0:00:00", 
"9/28/2011 0:00:00", "9/27/2011 0:00:00") 

Co znajduje się w szybki sposób usunąć wszystkie 0:00:00 jest tak, że

c 
[1] "9/21/2011" "9/25/2011" "10/2/2011" "9/28/2011" "9/27/2011" 
+0

Użyj funkcji 'gsub'. W archiwach SO musi być wiele, wiele przykładów. –

+0

Czy możesz podać tutaj odpowiedź na przykładzie? +1 –

+2

Może to działać 'sapply (strsplit (x," \\ s + ")," [", 1)' ale możesz chcieć pracować z tymi danymi jako datą ('as.Date'). –

Odpowiedz

10

można przekształcić je w terminach a następnie sformatować jako pożądany, np:

v <- c("9/21/2011 0:00:00", "9/25/2011 0:00:00", "10/2/2011 0:00:00", 
    "9/28/2011 0:00:00", "9/27/2011 0:00:00") 
v <- format(as.POSIXct(v,format='%m/%d/%Y %H:%M:%S'),format='%m/%d/%Y') 
> v 
[1] "09/21/2011" "09/25/2011" "10/02/2011" "09/28/2011" "09/27/2011" 

Lub możesz po prostu usunąć podciąg " 0:00:00" używając gsub:

v <- gsub(x=v,pattern=" 0:00:00",replacement="",fixed=T) 
> v 
[1] "9/21/2011" "9/25/2011" "10/2/2011" "9/28/2011" "9/27/2011" 
+3

prostszym sposobem może być użycie [Rundy] (https: // stat. ethz.ch/R-manual/R-devel/library/base/html/round.POSIXt.html) z 'unit =" day "' na typach dat – Aramis7d

Powiązane problemy