我有一个可能非常简单的问题。我想从数据帧中处理一列POSIXct对象,并生成一个日期时间字符串向量。我尝试使用以下sapply调用

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))


但无济于事。我不断收到以下错误:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument


当我将此功能应用于列中的单个POSIXct对象时,我没有问题。因此,我目前对问题所在感到困惑。我需要对POSIXct对象做一些特别的事情吗?

最佳答案

format()将采用向量参数,因此
format(df$datetime,"%Y-%m-%dT%H:%M:%S")应该做您所需要的。

当您使用sapply时,您的对象将被强制转换为数字,因此将调用错误的格式方法。您可以使用sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S"))将其强制返回POSIXct,但是除非有特殊原因要使用apply,否则请使用上述方法

07-24 09:52
查看更多