Добавить часы в зависимости от страны происхождения

Итак, у меня есть столбец, отображающий страну происхождения каждого поста в Facebook. У меня также есть время создания поста. Что я хочу сделать, это добавить 3 часа для каждого поста на арабском языке. Затем я хочу добавить 5 часов для российских сообщений. Допустим, у меня 12 стран с 12 различными часовыми поясами, которые нужно добавить.

Язык R.

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

1 ответ

Дано

(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)

затем

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

или же

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
Другие вопросы по тегам