r - Compare cell entry with column header in nested loops -


मेरे पास ऐसा पैनल है जो

  df & lt; -read.table (टेक्स्ट = "Preis10_6 akt_datum10_6 preis11_6 akt_datum11_6 1.55 10.06.2014 1.45 10.06.2014 1.56 09.06.2014 1.49 11.06.2014", हेडर = TRUE, sep = "")  

जहां अजीब कॉलम (< Code> preise ) उन दिनों में इकट्ठा किए गए कीमतें होती हैं और यहां तक ​​कि कॉलम ( akt_datum ) में डेटा की सामयिकता पर जानकारी होती है इसलिए, जब df [2, 2] है 09.06.2014 इसका अर्थ है कि df [1: 2, 2] में जानकारी है कल। मैं इन केस को NA सेट करना चाहता हूं।

यहां मैंने जो कुछ किया है, वह है:

  # समारोह के लिए instrall stringr की आवश्यकता होती है str_sub ( स्ट्रिंगर) || Install.packages ("stringr") # topicality जानकारी के साथ स्तंभों के लिए सूचकांक प्राप्त करें & lt; - seq (2, लंबाई (डीएफ), 2) # इन कॉलमों के ऊपर लूप (spaltte in spalten) {# से बेंचमार्क तारीख का निर्माण स्तंभ नाम फाड़नेवाला और एलटी; - str_sub (नाम (डीएफ) [स्पलेटे], 10, -1) फाड़नेवाला और एलटी; - स्ट्र्सप्लिट (अलगाने वाला, "_") # उस केस के लिए खाता जहां कॉलम का नाम कम समय प्रारूप में है (नहीं Trailing 0) फाड़नेवाला [[1]] [1] & lt; - ifelse (nchar (फाड़नेवाला [[1]] [1]) == 1, पेस्ट0 ("0", फाड़नेवाला [[1]] [1]), फाड़नेवाला [[1]] [1]) फाड़नेवाला [[1]] [2] & lt; - एफ़ेल (नाखार (अलगानेवाला [[1]] [2]) == 1, पेस्ट0 ("0", फाड़नेवाला [1 [2]), फाड़नेवाला [[1]] [2]) दिनांक & लेफ्टिनेंट; - पेस्ट (अलगानेवाला [[1]] [1], फाड़नेवाला [[1]] [2], "2014", सेप = " । ") # वास्तविक स्तम्भ में सभी पंक्तियों पर लूप (1: नेरो (डीएफ) में जीइएल) {# और सेल सेट करें और एनए एफ़ेल (डीएफ [ईईईएलई, स्पलेट]! = तारीख, डीएफ [ ईसाई, एस यह वास्तव में एक 933x324 पैनल है, लेकिन यह काम करता है, लेकिन उम्र लेता है - लेफ्टिनेंट; -  

यही है, मेरे पास कुल 162 दिनों के लिए प्रति दिन 933 मूल्य और सामयिकता जानकारी है, जो 162 मूल्य-सामयिक जोड़े = 324 कॉलम बनाता है।

मैं इस प्रक्रिया को तेज़ी से कैसे कर सकता हूं?

क्या यह आपके लिए क्या करना है? कम से कम यह आपके कोड के रूप में एक ही आउटपुट (रूपान्तरित तिथि के मॉड्यूल) का उत्पादन करता है।

  # डेटा उदाहरण पढ़ें df & lt; -read.table (text = "preis10_6 akt_datum10_6 preis11_6 akt_datum11_6 1.55 10.06.2014 1.45 10.06.2014 1.56 09.06.2014 1.49 11.06.2014 ", हेडर = TRUE, sep =" "# तारीख को बदलने के लिए (तारीखों के बीच तुलना की अनुमति देने के लिए) df $ akt_datum10_6 & lt; - as.Date (df $ akt_datum10_6," % D।% M%% Y ") df $ akt_datum11_6 & lt; - as.Date (df $ akt_datum11_6,"% d।% M%% Y ") # चेक करें कि कौन सी तारीख पहले है, और विकल्प का नाम 'NA's first & lt ; - df $ akt_datum10_6 & lt; Df $ akt_datum11_6 df [प्रथम, 1: 2] & lt; - NA df [! पहले, 3: 4] & lt; - NA प्रिंट (डीएफ) # प्रीिस 10_6 akt_datum10_6 preis11_6 akt_datum11_6 # 1 1.55 2014-06-10 एनए & lt; NA & gt; # 2 एनए & lt; NA & gt; 1.4 9 2014-06-11  

Comments