आर

2015-05-31 2 views
24

में सरल 'नाम बदलें' फ़ंक्शन चलाते समय त्रुटि संदेश इंटरनेट पर मिले एक बहुत ही सरल डेटा फ्रेम उदाहरण के नीचे। RStudio में मेरे मशीन पर यह चल रहा है पता चला है एक त्रुटि संदेश:आर

Error: All arguments to rename must be named.

rename समारोह सीधे आगे हो रहा है, लेकिन कुछ कारणों के लिए काम नहीं करता है और मैं बाहर क्यों समझ नहीं सकता।

library("dplyr") 

d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9) 
d 
# alpha beta gamma 
# 1  1 4  7 
# 2  2 5  8 
# 3  3 6  9 

rename(d, c("beta"="two", "gamma"="three")) 

#Error: All arguments to rename must be named. 
+10

मैं इस त्रुटि संदेश प्राप्त होता। मैंने इसे 'plyr :: rename() ' – coip

उत्तर

16

आपको मौजूदा कॉलम नाम के साथ-साथ नए नाम के लिए अनगिनत नामों का उपयोग करना होगा। साथ ही, ध्यान दें कि नया नाम बाईं ओर दिखाई देता है।

इस प्रयास करें:

rename(d, two = beta, three = gamma) 

    alpha two three 
1  1 4  7 
2  2 5  8 
3  3 6  9 
+0

का उपयोग करके बाईपास किया है, जो बाद में आते हैं, ** ** unquoted ** हिस्सा केवल तभी सही है जब आप' = 'के दाईं ओर बाएं और पुराने नाम पर नया नाम डालते हैं, जो विपरीत है 'नाम बदलें' में सहायता दस्तावेज़ का। –

39

माइक, अपने आदेश मान्य है, लेकिन "plyr" पैकेज के लिए। यदि आप एक ही स्क्रिप्ट में "dplyr" लोड करते हैं तो आपको उस त्रुटि का सामना करना पड़ेगा जिसका आपने उल्लेख किया था।

नतीजतन, ऐसा करें:

library("plyr") 
d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9) 
plyr::rename(d, c("beta"="two", "gamma"="three")) 

ध्यान दें कि sessionInfo() क्या संकुल लोड किए गए हैं (संलग्न) की एक ट्रैक रखने के लिए मदद करता है।

+4

यह उत्तर सही के रूप में स्वीकार किया जाना चाहिए। –

2

मुझे यह त्रुटि भी मिली जब मैं समूहबद्ध डेटा सेट पर rename_all का उपयोग करने का प्रयास कर रहा था।

उदाहरण के लिए

: के रूप में ओ पी ने कहा

as_tibble(mtcars) %>% group_by(cyl) %>% rename_all(toupper) 

त्रुटि उत्पन्न करेगा।

, को हल करने के असमूहीकृत का उपयोग() जब मैं दोनों `plyr` है और` लोड और `नाम बदलने()` आदेश का उपयोग करने की कोशिश की dplyr`

as_tibble(mtcars) %>% group_by(cyl) %>% ungroup() %>% rename_all(toupper) 
+0

यह ओपी के मुद्दे की तरह नहीं दिखता है, लेकिन यह मेरा था। धन्यवाद। – quartin