标准化大型数据集中的时区

时间:2018-05-28 12:28:21

标签: r

我有一个对应不同站点和时区的大型数据集。 我想将所有网站标准化为" UCT"。我努力改变日期(这是一个因素)以获得正确的日期格式。

我约会的一小部分样本如下:

.trow
{
   transition: transform .2s;
}

.trow:hover {
   cursor:pointer; 
   transform: scale(1.03);
   background:#ccc;
   color:#fff;
}

这是一个包含4个不同tzone的大型数据集:

       head(data_tz)
       site       DatetimeEnd         tzone
       FR01001   2014-10-28 00:00:00  UTC
       FR01001   2014-11-02 00:00:00  UTC
       FR01001   2014-01-20 00:00:00  UTC
       FR01001   2014-11-01 00:00:00  UTC
       FR01001   2014-01-13 00:00:00  UTC
       FR01001   2014-09-17 00:00:00  UTC
       ..........

而DatetimeEnd是一个因素,我需要将其转换为POSIXct,然后将每个站点转换为" UTC"。我一直在尝试不同的方法,但它们都没有奏效。 我正在使用:

        unique(data_tz$tzone)
        "UTC"  "UTC-04" "UTC+04" "UTC-03"

但我得到了:

newdata$DatetimeEnd <- as.POSIXct(data_tz$DatetimeEnd, format="%Y-%m-%d %H:%M:%S",tz=data_tz$tzone)

使用时也一样:

Error in strptime(x, format, tz = tz) : invalid 'tz' value

如果我使用:

newdata$DatetimeEnd <- as.POSIXct(strptime(data_tz$DatetimeEnd, 
                    format="%Y-%m-%d %H:%M:%S",tz=data_tz$tzone))

它有效,但它不是我想要的,因为有一些列(网站)与&#34; UCT + 02&#34; ..(不同的tzone)

我如何在这里使用tz作为参数来获得正确的时区?任何想法/建议都会非常有用。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用purrr :: map2迭代DatetimeEnd和tzone列的行,从而创建一个新的向量。