我有一个5,000,000 x 6的数据框。
其中一列tweetSendTime
是一个时间戳,我想将其更改为POSIX格式,以便我可以执行df["tweetSendTime"] > SPECIFIC_GLOBAL_VARIABLE_DATE
之类的操作。
目前,我使用
foreach(j=1:len) %dopar%
{
sendTime = combinedDF[j, "tweetSendTime"]
## Current format - Thu Jan 14 19:44:46 0000 2016
sendTime = gsub(" 0000", " +0000", sendTime)
updatedTime = strptime( sendTime, "%a %b %d %H:%M:%S %z %Y")
combinedDF[j, "tweetSendTime"] = toString(updatedTime)
}
但是,我不相信这是最有效的方法。是否有更好/更快的方式来更新此阵列?
答案 0 :(得分:1)
R是矢量化的;你不需要在循环中这样做。实际上,循环会大大减慢速度。您可以在一个命令中转换整个列(编辑,每个digEmAll):
combinedDF$tweetSendTime = strptime(gsub(" 0000", " +0000", combinedDF$tweetSendTime), "%a %b %d %H:%M:%S %z %Y")
同时查看as.POSIX*;这可能对你有用。