我的数据集中有两列:DATE_TIME和TZ,它们都是字符串。我想结合这两个来获得一个合适的数据对象。
> df
DATE_TIME TIME_ZONE
1 4/18/1950 0130 CST
2 4/18/1950 0145 CST
3 2/20/1951 1600 CST
4 6/8/1951 0900 CST
5 11/15/1951 1500 CST
6 11/15/1951 2000 CST
这是我尝试过的,但它没有给我预期的结果:
convertToDateTime <- function(dtString, tz) {
strptime(dtString, tz = tz, "%m/%d/%Y %H%M")
}
df$DATETIME <- Map(convertToDateTime, df$DATE_TIME, df$TIME_ZONE)
class(df$DATETIME) # -> list
显然,此地图将convertToDateTime的结果转换为列表。我应该使用不同的功能吗?
更新:好的,那是炫耀,我缺乏R skils :(。修正了,根据LukeA的评论如下:
convertToDateTime <- function(dtString, tz) {
strftime(strptime(dtString, tz=tz, format="%m/%d/%Y %H%M"), tz=tz)
}
df$DATETIME <- mapply(convertToDateTime, df$DATE_TIME, df$TIME_ZONE)
答案 0 :(得分:0)
正如我的问题更新中所述。问题解决如下:
convertToDateTime <- function(dtString, tz) {
strftime(strptime(dtString, tz=tz, format="%m/%d/%Y %H%M"), tz=tz)
}
df$DATETIME <- mapply(convertToDateTime, df$DATE_TIME, df$TIME_ZONE)