यहाँ कुछ तरीके हैं:
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)