2016-05-04 17 views
0

So habe ich eine Spalte, die das Herkunftsland von jedem Facebook-Post anzeigt.Ich habe auch die Zeit, die Erstellung der Post.Was ich tun möchte, ist 3 Stunden für jeden arabischen Post hinzuzufügen. Dann möchte ich 5 Stunden für russische Beiträge hinzufügen. Sagen wir, ich habe 12 Länder mit 12 verschiedenen Zeitzonen, die hinzugefügt werden müssen.Stunden basierend auf Herkunftsland hinzufügen

Die Sprache ist R.

allCountries <- c("Arabia" , "Argentina", "Brazil", "Global", "India","Malaysia", 
          "Mexico","Poland","Sweden","Turkey","MaxTurkey","Ukraine","US") 

Antwort

1

Gegeben

(df <- data.frame(datetime=rep(Sys.time(), 3), origin=c("arabian", "russian", "us"))) 
#    datetime origin 
# 1 2016-05-04 11:27:52 arabian 
# 2 2016-05-04 11:27:52 russian 
# 3 2016-05-04 11:27:52  us 
offset <- c("arabian"=3, "russian"=5) 

Dann

transform(df, datetime=datetime + offset[origin]*60*60) 
#    datetime origin 
# 1 2016-05-04 14:26:12 arabian 
# 2 2016-05-04 16:26:12 russian 
# 3    <NA>  us 

oder

transform(df, datetime=datetime + ifelse(origin %in% names(offset), offset[df$origin]*60*60, 0)) 
#    datetime origin 
# 1 2016-05-04 14:27:52 arabian 
# 2 2016-05-04 16:27:52 russian 
# 3 2016-05-04 11:27:52  us 
+0

Meine Reisedaten in diese kommen für Matte 20/4/2016 13:12 in Excel. – thanos