我有一个非常简单的问题。我想从数据帧处理一列POSIXct对象并生成一个datetime字符串向量。我尝试使用以下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对象做一些特别的事情?
答案 0 :(得分:13)
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
,否则只需使用上述方法