R: Slope to extract numbers from multiple variables of string data in a complex numeric/string-mixed dataset -
मेरे पास जर्मन आर्थिक पैनल (SOEP) से 18 समान डेटाफ्रेम (प्रत्येक एक सर्वेक्षण वर्ष का प्रतिनिधित्व करता है) जो कि भाग स्ट्रिंग है और भाग संख्यात्मक
- पहले 4 व्यक्ति और घर के संख्यात्मक पहचानकर्ता हैं
- कुछ "संख्या" तक "12" संख्याएं हैं
- कुछ स्ट्रिंग टाइप 1 को "[1] जा" या "[-2] नीन" के रूप में "
- कुछ स्ट्रिंग टाइप 2 को" [1] जनवरी वॉल्ज़िट इवरबस्ट "के रूप में कहते हैं। या "[-2] ट्रifफ़ट निक्ट ज़ू"
मैंने पहले से ही एक
sapply -आदेश की कोशिश की है लेकिन मुझे 4 आइडेंटिफ़ायर के बिना एक डेटा फ्रेम में एक मैट्रिक्स परिवर्तनीय प्राप्त हुआ -Variables और अभी भी मेरी संख्या के आसपास कोष्ठक है (पीकेएल06 मेरा प्रारंभिक डीएफ है)।
पीके & lt; - sapply (PKAL06 [5: 225], फ़ंक्शन (पीकेएल 06) सबस्ट्रेट (पीकेएल 066) , 3)) पीकेएसडी & एलटी; - डेटा.फ्रेम (पीके)
साथ ही मैंने
gsub के साथ एक संयोजन की कोशिश की, लेकिन यह सिर्फ स्ट्रिंग के बजाय मुझे दिया ।
PKas & lt; - sapply (PKAL06, फ़ंक्शन (PKAL06) as.numeric (gsub ("([0-9] +)। * $", "\\ 1", PKAL06 )))
आदर्श रूप से कोई मुझे संकेत दे सकता है कि कैसे पूरे स्ट्रिंग चर को बदलकर संख्यात्मक चर में (!) डेटा फ्रेम को बदलने के लिए आर को बताइए, कोष्ठक के बीच क्या है आउटपुट सभी वैरिएबल्स के साथ समान ढांचे के डेटा फ़्रेम होना चाहिए, पहले नहीं, एक मैट्रिक्स नहीं, कोई सूची नहीं।
किसी भी मदद की अत्यधिक सराहना की जाएगी।
< Div class = "post-text" itemprop = "text">
मैं इकट्ठा करता हूं कि डेटा गोपनीय है, इसलिए इसे आज़माएं:
PKas & lt; - sapply (PKAL06, फ़ंक्शन (PKAL06) as.numeric (gsub ("\\ [([0-9 | \\ -] +) \\]। +", "\\ 1", PKAL06)))
ऊपर दिए गए पैटर्न आपके उदाहरण डेटा के साथ काम करने लगता है।
str & lt; - c ("[1] जा", "[- 2] नीन") as.numeric (gsub) ("[\ [[[0-9 | \\ -] +) \\]।", "\\ 1", str)) # [1] 1 -2 str & lt; - c ("[1] Jan Vollzeit erwerbst। "," [- 2] ट्रifफ़ट निक्ट ज़ू ") as.numeric (gsub (" \\ [[[[0-9 | \\ -] +) \\]। "," \\ 1 " , Str)) # [1] 1 -2
आप (लगता है ...) ब्रैकेट के बीच जो कुछ भी निकालना चाहते हैं। लेकिन
[ नियमित अभिव्यक्ति वाक्यविन्यास में एक विशेष वर्ण है, इसलिए आपको इसे
\\ [ या
\\] का उपयोग करके बचाना होगा। ऊपर दिए गए कोड को केवल अंकों या
- कोष्ठक के बीच में स्वीकार करने में थोड़ा सा जाता है।
Comments
Post a Comment