R में grep() और grepl() की तुलना: क्या अंतर है?


दो फ़ंक्शन जिन्हें लोग अक्सर R में भ्रमित करते हैं वे grep() और grepl() हैं। दोनों फ़ंक्शन आपको यह देखने की अनुमति देते हैं कि स्ट्रिंग में एक निश्चित पैटर्न मौजूद है या नहीं, लेकिन वे अलग-अलग परिणाम लौटाते हैं:

  • जब एक स्ट्रिंग में कोई पैटर्न मौजूद होता है तो grepl() TRUE लौटाता है।
  • grep() पैटर्न वाले स्ट्रिंग सूचकांकों का एक वेक्टर लौटाता है।

निम्नलिखित उदाहरण इस अंतर को दर्शाता है:

 #create a vector of data
data <- c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center')

grep ('Guard', data)
[1] 1 2

grepl ('Guard', data) 
[1] TRUE TRUE FALSE FALSE FALSE

निम्नलिखित उदाहरण दिखाते हैं कि आप कब इनमें से किसी एक फ़ंक्शन का उपयोग दूसरे के स्थान पर करना चाह सकते हैं।

ग्रेपल() का उपयोग कब करें

1. एक निश्चित स्ट्रिंग वाली पंक्तियों को फ़िल्टर करें

Grepl() का सबसे आम उपयोग एक निश्चित स्ट्रिंग वाले डेटा फ़्रेम में पंक्तियों को फ़िल्टर करना है:

 library(dplyr)

#create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#filter rows that contain the string 'Guard' in the player column
df %>% filter( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

संबंधित: dplyr का उपयोग करके एक निश्चित स्ट्रिंग वाली पंक्तियों को कैसे फ़िल्टर करें

ग्रेप() का उपयोग कब करें

1. ऐसे कॉलम चुनें जिनमें एक निश्चित स्ट्रिंग हो

आप एक निश्चित स्ट्रिंग वाले डेटा फ़्रेम में कॉलम का चयन करने के लिए grep() का उपयोग कर सकते हैं:

 library(dplyr)

#create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#select columns that contain the string 'p' in their name
df %>% select( grep ('p', colnames(df)))

     player points
1 P Guard 12
2 S Guard 15
3S Forward 19
4P Forward 22
5 Center 32

2. एक निश्चित स्ट्रिंग वाली पंक्तियों की संख्या गिनें

आप एक निश्चित स्ट्रिंग वाले डेटा फ़्रेम में लाइनों की संख्या गिनने के लिए grep() का उपयोग कर सकते हैं:

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#count how many rows contain the string 'Guard' in the player column
length( grep ('Guard', df$player))

[1] 2

आप यहां अधिक आर ट्यूटोरियल पा सकते हैं।

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *