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
आप यहां अधिक आर ट्यूटोरियल पा सकते हैं।