r适用于更改Posixct的日期



我正在尝试更换DF中某些Posixct数据中的日期。本质上,我想到使用这样的东西:

as.POSIXct(sub("\S+", "2018-07-02", x))

x是我原始数据框架行中的值。我认为最有效的方法是使用诸如迭代行中的迭代之类的东西,例如:

apply(df$original.date,1,function(x) as.POSIXct(sub("\S+", "2018-07-02", x)))

但是,它似乎不喜欢它,给我一个关于正长度的错误。我首先想知道我的方法是否是合理的,如果是这样,如何修复它。另外,如果有更好的方法,我全都是耳朵。

谢谢。

函数 subas.POSIXct已矢量化,因此a single 呼叫

df$original.date <- as.POSIXct(sub("\S+", "2018-07-02", df$original.date))

将替换数据框中的original.date列。

至于您的apply代码:

> apply(df$original.date,1,function(x) as.POSIXct(sub("\S+", "2018-07-02", x)))
Error in apply(df$original.date, 1, function(x) as.POSIXct(sub("\S+",  : 
  dim(X) must have a positive length

问题在于apply期望矩阵或数组,而您将其从数据框架(即向量(列为列。您可以使用lapplysapply。但这是不必要的,因为如上图所示,整列可以一次更改。

最新更新