2015-05-31 12 views
24

Poniżej bardzo prosty przykład ramki danych, którą znalazłem w Internecie. Bieganie to w RStudio na moim komputerze okazuje się komunikat o błędzie:Komunikat o błędzie podczas uruchamiania prostej funkcji "zmień nazwę" w R

Error: All arguments to rename must be named.

Funkcja rename wydaje się być proste, ale nie działa z jakichś powodów nie mogę zrozumieć dlaczego.

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

I ten komunikat o błędzie, gdy mam zarówno '' dplyr' plyr' i załadowany i próbował użyć rename() '' polecenia. Ominąłem to używając 'plyr :: rename()' – coip

Odpowiedz

16

Musisz użyć niecytowanych nazw dla istniejącej nazwy kolumny, a także nowej nazwy. Zauważ też, że nowa nazwa pojawia się po lewej stronie.

Spróbuj tego:

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

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

Dla tych, którzy przyjdą później, ** niecytowana ** część jest prawdziwa tylko wtedy, gdy wstawisz nowe imię po lewej i stare imię po prawej '=', co jest przeciwieństwem dokumentu pomocy w "? rename". –

39

Mike, twój rozkaz jest ważna, ale dla pakietu "plyr". Jeśli załadujesz "dplyr" w tym samym skrypcie, otrzymasz błąd, o którym wspomniałeś.

konsekwencji, spróbuj zamiast tego:

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

Zauważ, że sessionInfo() pomaga zachować śledzić jakie pakiety są ładowane (w załączeniu).

+4

Ta odpowiedź powinna być przyjęta jako poprawna. –

2

Też miałem ten błąd, gdy próbowałem użyć rename_all na zgrupowanym zestawie danych.

na przykład:

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

spowoduje błędu podana przez OP.

Aby rozwiązać, należy rozgrupuj()

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

To nie wygląda na PO, ale było moje. Dzięki. – quartin

Powiązane problemy