मेरे पास data.table
है जिसमें कॉलम 2 से 20 के साथ रिक्त स्थान के साथ तार (उदाहरण के लिए, "प्रजाति का नाम") है। मैं उन सभी स्तंभों पर एक साथ str_replace()
चलाने के लिए चाहता हूं ताकि सभी "प्रजाति का नाम" "प्रजातियां नाम" बन जाए। मुझे क्या करना है या तो कर सकते हैं:मैं डेटाटेबल पर कैसे आवेदन करूं?
data.table(apply(as.data.frame(dt[,2:dim(dt)[2], with=F]), 2,
function(x){ str_replace(x," ","_") }))
या अगर मैं इसे एक data.table
वस्तु के रूप में रखने के लिए, तो मैं इस एक स्तंभ एक समय में कर सकते हैं:
dt[,SpeciesName := str_replace(SpeciesName, " ", "_")
सभी स्तंभों 2 के माध्यम से के लिए मैं यह करने के लिए कैसे करते हैं उपरोक्त में से एक के समान अंत?
यह एक दिलचस्प मामला है। यहां, 20 में से 1 9 कॉलम प्रतिस्थापित किए जा रहे हैं; ': =' का आरएचएस लगभग सभी तालिका है। ': =' का लाभ अधिक होता है, कहें, एक या दो कॉलम 20 में जोड़े जाते हैं, या 20 के एक या दो कॉलम संशोधित होते हैं। उन मामलों में अधिकांश कॉलम जगह पर छोड़ दिए जाते हैं और ': =' पूरी तालिका की प्रतिलिपि बनाने से बहुत तेज है। –
इसके अलावा, 'सेट() 'v1.8.0 (अभी तक सीआरएएन पर नहीं) में एक नया फ़ंक्शन है जो सीधे': = 'कार्यक्षमता प्रदान करता है। 'सेट() 'लूप के भीतर असाइन करते समय' = = 'से अधिक तेज़ हो सकता है (अधिक प्राकृतिक प्रोग्रामिंग के लिए)। मुखपृष्ठ पर नवीनतम समाचारों में एक उदाहरण है। –
@MatthewDowle - आपकी टिप्पणियों के लिए धन्यवाद।उन्होंने मुझे याद दिलाया कि, सप्ताहांत में, मुझे यहां दिए गए उत्तर के बारे में एक अजीब लग रहा था, और मुझे इसे फिर से देखने के लिए प्रेरित किया। जाहिर है, मेरे पास घबराहट महसूस करने का अच्छा कारण था। कृपया मेरे संशोधित उत्तर पर एक नज़र डालें। इसके अलावा ** कृपया मेरी टिप्पणियों में दिए गए किसी भी सुझाव को मेरे उत्तर ** के पाठ पर जोड़ें, जहां आपको लगता है कि वे मदद कर सकते हैं। मैं 'set() 'पर एक नज़र डालेगा, लेकिन अभी तक चर्चा करने के लिए योग्य महसूस नहीं करता हूं। और, एक बार फिर, डेटाटेबल पैकेज के निरंतर विकास में आपके द्वारा किए गए सभी कार्यों के लिए धन्यवाद! –