यहाँ कुछ तरीके हैं:
1) उप
sub(".*:", "", string)
## [1] "E001" "E002" "E003"
2) strsplit
sapply(strsplit(string, ":"), "[", 2)
## [1] "E001" "E002" "E003"
3) read.table
read.table(text = string, sep = ":", as.is = TRUE)$V2
## [1] "E001" "E002" "E003"
4) विकल्प
यह दूसरा भाग हमेशा 4 वें वर्ण पर शुरू होता है (जो प्रश्न में उदाहरण में मामला है):
substring(string, 4)
## [1] "E001" "E002" "E003"
4a) सबस्ट्रिंग / रेगेक्स
यदि बृहदान्त्र हमेशा ज्ञात स्थिति में नहीं होता है तो हम उसे खोज कर (4) संशोधित कर सकते हैं:
substring(string, regexpr(":", string) + 1)
5) स्ट्रैप्लीक
strapplyc कोष्ठक भाग देता है:
library(gsubfn)
strapplyc(string, ":(.*)", simplify = TRUE)
## [1] "E001" "E002" "E003"
6) read.dcf
यह केवल तभी काम करता है जब बृहदान्त्र से पहले सबस्ट्रिंग अद्वितीय होते हैं (जो वे प्रश्न में उदाहरण में हैं)। इसके अलावा यह आवश्यक है कि विभाजक बृहदान्त्र हो (जो कि प्रश्न में है)। यदि एक अलग विभाजक का उपयोग किया गया था, तो हम subइसे पहले एक बृहदान्त्र के साथ बदलने के लिए उपयोग कर सकते हैं । उदाहरण के लिए, यदि विभाजक _तब थेstring <- sub("_", ":", string)
c(read.dcf(textConnection(string)))
## [1] "E001" "E002" "E003"
7) अलग
7a)tidyr::separate हम दो स्तंभों के साथ एक डेटा फ्रेम का उपयोग करते हैं, एक बृहदान्त्र से पहले के भाग के लिए और एक बाद के लिए, और फिर बाद वाले को निकालते हैं।
library(dplyr)
library(tidyr)
library(purrr)
DF <- data.frame(string)
DF %>%
separate(string, into = c("pre", "post")) %>%
pull("post")
## [1] "E001" "E002" "E003"
7 बी) वैकल्पिक रूप separateसे postस्तंभ और उसके बाद unlistऔर unnameइसके परिणामस्वरूप डेटा फ्रेम बनाने के लिए उपयोग किया जा सकता है :
library(dplyr)
library(tidyr)
DF %>%
separate(string, into = c(NA, "post")) %>%
unlist %>%
unname
## [1] "E001" "E002" "E003"
8) ट्रिम्स हम trimwsबाईं ओर से शब्द वर्णों को ट्रिम करने के लिए उपयोग कर सकते हैं और फिर इसे बृहदान्त्र ट्रिम करने के लिए फिर से उपयोग कर सकते हैं।
trimws(trimws(string, "left", "\\w"), "left", ":")
## [1] "E001" "E002" "E003"
ध्यान दें
इनपुट stringमाना जाता है:
string <- c("G1:E001", "G2:E002", "G3:E003")
_जो एक विभाजक के रूप में था और @Grothendieck उत्तर के आधार पर उपसर्ग और प्रत्यय के लिए दो अलग-अलग चर बनाए:prefix <- sub("_.*", "", variable)औरsuffix <- sub(".*_", "", variable)