我有一个可能非常简单的问题。我想从数据帧中处理一列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
,否则请使用上述方法