باستخدام Sapply على متجه Posixct
سؤال
لدي ما قد يكون سؤالًا بسيطًا جدًا. أرغب في معالجة عمود من كائنات 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؟
المحلول
format()
سوف تأخذ حجة المتجهات ، لذلكformat(df$datetime,"%Y-%m-%dT%H:%M:%S")
يجب أن تفعل ما تحتاجه.
عندما تستخدم Sapply ، يتم إجبار كائناتك على الرقم ، وبالتالي يتم استدعاء طريقة التنسيق الخاطئ. يمكنك إجبارهم على العودة إلى posixct باستخدام sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S"))
, ، ولكن ما لم يكن لديك سبب خاص للاستخدام apply
, ، فقط استخدم الطريقة أعلاه