R - 最快/最有效的方式转换数据框中列的数据?

时间:2016-04-11 16:28:43

标签: r performance dataframe

我有一个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)
}

但是,我不相信这是最有效的方法。是否有更好/更快的方式来更新此阵列?

1 个答案:

答案 0 :(得分:1)

R是矢量化的;你不需要在循环中这样做。实际上,循环会大大减慢速度。您可以在一个命令中转换整个列(编辑,每个digEmAll):

combinedDF$tweetSendTime = strptime(gsub(" 0000", " +0000", combinedDF$tweetSendTime), "%a %b %d %H:%M:%S %z %Y")

同时查看as.POSIX*;这可能对你有用。