में स्ट्रिंग के रूप में नए कॉलम नाम दर्ज करें dplyr के नामकरण कार्यों को नए कॉलम नाम को अनिवार्य चर नामों के रूप में पारित करने की आवश्यकता होती है। हालांकि मेरे पास एक ऐसा कार्य है जहां कॉलम नाम एक स्ट्रिंग को पारित तर्क पर पेस्ट करके बनाया गया है और इसलिए एक वर्ण स्ट्रिंग है।dplyr के नाम बदलें फ़ंक्शन
उदाहरण के लिए मैं
a new
1 1 4
2 2 5
3 3 6
जबकि मैं 'नए' स्तंभ नाम होना चाहता हूँ कहते हैं कि यदि मैं यह
df <- data.frame(a = 1:3, old = 4:6)
myFunc(df, 'x')
चलाने मैं इस समारोह
myFunc <- function(df, col){
new <- paste0(col, '_1')
out <- dplyr::rename(df, new = old)
return(out)
}
था मैंने जिस स्ट्रिंग का निर्माण किया ('x_1'), यानी
a x_1
1 1 4
2 2 5
3 3 6
क्या ऐसा करने के लिए वैसे भी है?
[dplyr 0.3' की घोषणा] से [http://blog.rstudio.org/2014/10/13/dplyr-0-3-2/): "अब आप 'dplyr' के साथ प्रोग्राम कर सकते हैं - गैर-मानक मूल्यांकन (एनएसई) का उपयोग करने वाले प्रत्येक कार्य में मानक मूल्यांकन (एसई) जुड़वां भी होता है जो '_' में समाप्त होता है [...] प्रत्येक फ़ंक्शन के एसई संस्करण में समान तर्क होते हैं, लेकिन उन्हें स्पष्ट रूप से" उद्धृत "होना चाहिए। " इस प्रकार, जांचें कि 'rename_' यहां उपयोगी हो सकता है या नहीं। – Henrik
धन्यवाद, यह जानना उपयोगी है लेकिन यह वास्तव में इस मामले में कुछ भी नहीं बदलता है। यह काम करेगा यदि मैं जिस कॉलम में गुजर रहा था वह पुराना कॉलम नाम था, लेकिन उपरोक्त फ़ंक्शन को rename_ (और उद्धरण में पुराना डालने के लिए) का उपयोग करने के लिए अभी भी वही – user1165199
@ user1165199 देता है, मैं 'colnames (df) [colnames (df))% "पुरानी" में%] <- paste0 ("x", "_") '(यदि आवश्यक हो तो फ़ंक्शन में) क्योंकि यह आसानी से नामों के वेक्टर को प्रतिस्थापित करने में सक्षम है। – akrun