मैं कुछ पीडीएफ फाइलों से डेटाटेबल बनाने की कोशिश कर रहा हूं, जिसके परिणामस्वरूप कभी-कभी कुछ अनियोजित रिक्त स्थान वाले डेटा होते हैं, उदा।

MWE <- c("Gross Domestic Product 2.3",
"blabla 1.5",
"blabla2 6.5", 
"G ross Domestic Product 4.5",
"Another L ine 9.6",
"Gross Domestic Product 6.9",
"G r oss D omes tic Pr o du ct 7.6")

मैं चाहता हूं कि Gross Domestic Product की सभी घटनाएं हों, चाहे रिक्त स्थान हों या नहीं। लेकिन एक साधारण grep("Gross Domestic Product",MWE) रिक्त स्थान को ध्यान में रखता है

grep("Gross Domestic Product",MWE)
[1] 1 6

मैं उस अपस्ट्रीम को कर सकता हूं, उदाहरण के लिए हर रिक्त स्थान को मिटाकर, उदा।

MWE_2 <- gsub("\\s","",MWE)
grep("GrossDomesticProduct",MWE_2)
[1] 1 4 6 7

मैं सोच रहा था कि क्या grep विकल्प के साथ एक ही परिणाम प्राप्त करना संभव था, जो कुछ उपयोगों के लिए उपयोगी साबित हो सकता है (उदाहरण के लिए एक नई तालिका नहीं बनाना)

1
Anthony Martin 19 अक्टूबर 2020, 18:33

1 उत्तर

सबसे बढ़िया उत्तर

आप अपनी स्ट्रिंग को संशोधित कर सकते हैं और grep का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है। विचार एक regex बनाना है जो मौजूद होने पर स्थान की उपेक्षा करता है।

MWE <- c("Gross Domestic Product 2.3",
         "blabla 1.5",
         "blabla2 6.5", 
         "G ross Domestic Product 4.5",
         "Another L ine 9.6",
         "Gross Domestic Product 6.9",
         "G r oss D omes tic Pr o du ct 7.6")

gdp_str <- "Gross Domestic Product"
gdp_str <- sub("\\s*", "\\\\s*", gsub('(.{1})', '\\1\\\\s*', gdp_str))
grep(gdp_str, MWE)
2
Amandeep Jiddewar 19 अक्टूबर 2020, 15:52