मैं वेक्टर में प्रत्येक स्ट्रिंग के वर्णों को कुशलता से कैसे कर सकता हूं? उदाहरण के लिए, स्ट्रिंग्स का एक सदिश:
set.seed(1)
strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)),
do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)),
do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE)))
मैंने एक फ़ंक्शन लिखा है जो प्रत्येक स्ट्रिंग को वेक्टर में विभाजित करेगा, वेक्टर को सॉर्ट करेगा, और फिर आउटपुट को संक्षिप्त करेगा:
sort_cat <- function(strings){
tmp <- strsplit(strings, split="")
tmp <- lapply(tmp, sort)
tmp <- lapply(tmp, paste0, collapse = "")
tmp <- unlist(tmp)
return(tmp)
}
sorted_strings <- sort_cat(strings)
हालांकि, स्ट्रिंग्स के वेक्टर को इसे लागू करने की आवश्यकता है जो बहुत लंबा है, और यह फ़ंक्शन बहुत धीमा है। क्या किसी के पास प्रदर्शन सुधारने के लिए कोई सुझाव है?
letters
लंबाई तीन की हमेशा अपने उदाहरण के रूप में नहीं हैं, वे कर रहे हैं?
fixed = TRUE
में strsplit()
सुधार हो सकता है के रूप में यह regex के इस्तेमाल को शामिल नहीं होंगे।