R if statement across columns of data table to populate new column -
डेटा & lt; - डेटा.फ्रेम (दिनांक = सी ("2014-10-28 00: 01: 59.526 "," 2014-10-27 13: 30: 01.526 "), टाइम्स = सी (" 23:59:59 "," 13:29:55 "), घंटा = सी (23,13), मिनट = सी ( 59,29), दूसरा = सी (59,55)) डेटा [, 1] & lt; - as.POSIXct (डेटा [, 1]) डेटा [, 2] & lt; - as.factor (डेटा [, 2]) कक्षा (डेटा [, 1]) वर्ग (डेटा [, 2]) वर्ग (डेटा [, 3]) वर्ग (डेटा [, 4]) वर्ग (डेटा [5]) डेटा दिनांक समय घंटे मिनट सेकंड 1 2014-10 -28 00: 01: 59.526 23:59:59 23 59 59 2 2014-10-27 13: 30: 01.526 13:29:55 13 29 55
मुझे एक नया कॉलम "न्यूडेट" जो कि पीओएसएक्सक्ट डेटा के साथ है, जो दिनांक और समय के कॉलम का संयोजन है, लेकिन अगर घंटे का कॉलम 23 से दिखाता है तो "नेवडेट" के लिए तारीख "तारीख" कॉलम MINUS 1 दिन से तारीख होना चाहिए अन्यथा नहीं "दिनांक" कॉलम से तारीख हो।
तो अंतिम आउटपुट होना चाहिए:
<सह डी> तारीख समय घंटे मिनट दूसरा न्यूडेट 1 2014-10-28 00: 01: 59.526 23:59:59 23 59 59 2014-10-27 23:59:59 # न्यू डेट = तारीख -1 + 2 बार 2014-10- 27 13: 30: 01.526 13:29:55 13 29 55 2014-10-17 13:29:55 # न्यू डेडेट = डेट + टाइम कोड>
(न्यूडेट को एक पॉसिक्सक्ट होना चाहिए) < / P>
लाइब्रेरी (lubridate) #lubridate में घंटे (), मिनट () होते हैं, (I 1: लंबाई (तिथि)) के लिए (यदि (घंटे [i]) () (सही) & gt; घंटे (तारीख [आई])) {न्यूडेट (आई) = आईएसडीटाटाइम (वर्ष (तारीख [आई]), महीने (तारीख [आई]), दिन (तारीख [आई]) - 1, घंटे [आई], मिनट [i ], द्वितीय [i], tz = "GMT")} अन्य {न्यूडेट (i) = ISOdatetime (वर्ष (दिनांक [i]), महीना (दिनांक [i]), दिन (दिनांक [i]), घंटा [i ], मिनट [i], दूसरा [i], tz = "GMT")}}}
<प्री>
के साथ (डेटा, पेस्ट (प्रारूप (जैसा कि दिनांक (तिथियाँ) - (घंटे == 23), "% Y-% m-% d"), पेस्ट (घंटा, मिनट, सेकंड, एसईपी) = ":"))) # [1] "2014-10-27 23:59:59" "2014-10-27 13:29:55"
ओओप्स, भूल गया के रूप में। POSIXct:
as.POSIXct (डेटा के साथ, पेस्ट (प्रारूप (जैसे। दिनांक (दिनांक) - (घंटे == 23), "% Y-% m-% d" ), पेस्ट (घंटा, मिनट, सेकंड, sep = ":")))) [1] "2014-10-27 23:59:59 पीडीटी" "2014-10-27 13:29:55 पीडीटी" कोड>
Comments
Post a Comment