অন্য বিকল্প হ'ল নিয়মিত এক্সপ্রেশন ফাংশন regmatchesএবং সহ সাব-এক্সপ্রেশন ক্যাপচারিং ব্যবহার করা regexec।
# the original example
x <- 'hello stackoverflow'
# grab the substrings
myStrings <- regmatches(x, regexec('(^.)(.*)', x))
এটি পুরো স্ট্রিং, প্রথম অক্ষর এবং "পপড" এর ফলাফল 1 দৈর্ঘ্যের তালিকায় দেয়।
myStrings
[[1]]
[1] "hello stackoverflow" "h" "ello stackoverflow"
যা সমান list(c(x, substr(x, 1, 1), substr(x, 2, nchar(x))))। এটি হ'ল এটিতে পছন্দসই উপাদানগুলির দুর্দান্ত সেট পাশাপাশি পুরো স্ট্রিং রয়েছে।
যোগ করা sapplyএই পদ্ধতিতে> 1 দৈর্ঘ্যের একটি চরিত্রের ভেক্টরের জন্য কাজ করতে দেয়।
# a slightly more interesting example
xx <- c('hello stackoverflow', 'right back', 'at yah')
# grab the substrings
myStrings <- regmatches(x, regexec('(^.)(.*)', xx))
এটি প্রথম উপাদান হিসাবে মেলে পূর্ণ স্ট্রিং এবং ()নীচের উপাদানগুলির হিসাবে ক্যাপচার ম্যাচিং সুবে এক্সপ্রেসশনগুলির সাথে একটি তালিকা ফেরত দেয় । রেগুলার এক্সপ্রেশন তাই '(^.)(.*)', (^.)প্রথম অক্ষর মিলে যায় এবং (.*)অবশিষ্ট অক্ষরের সাথে মেলে।
myStrings
[[1]]
[1] "hello stackoverflow" "h" "ello stackoverflow"
[[2]]
[1] "right back" "r" "ight back"
[[3]]
[1] "at yah" "a" "t yah"
এখন, আমরা পছন্দসই সাবস্ট্রিংগুলি টানতে বিশ্বস্ত sapply+ [পদ্ধতিটি ব্যবহার করতে পারি ।
myFirstStrings <- sapply(myStrings, "[", 2)
myFirstStrings
[1] "h" "r" "a"
mySecondStrings <- sapply(myStrings, "[", 3)
mySecondStrings
[1] "ello stackoverflow" "ight back" "t yah"