Próbuję zmienić nazwę kolumny za pomocą dplyr::rename()
, a R zwraca błąd, którego nie mogę znaleźć w Internecie.zmiana nazwy dplyr - Błąd: `nowa_nazwa` = stara nazwa musi być symbolem lub łańcuchem, a nie formułą
Error: `new_name` = old_name must be a symbol or a string, not formula
Powtarzalne przykład z danych ramie 2 kolumny: Informacje
library(dplyr)
df <- data.frame(old_name = seq(1:10), x = seq(1:10))
df %>% dplyr::rename(new_name = old_name)
Sesja:
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin17.2.0 (64-bit)
Running under: macOS High Sierra 10.13.1
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.7.4
loaded via a namespace (and not attached):
[1] compiler_3.4.3 magrittr_1.5 assertthat_0.2.0 R6_2.2.2
[5] bindrcpp_0.2 glue_1.2.0 tibble_1.3.4 Rcpp_0.12.14.3
[9] pkgconfig_2.0.1 rlang_0.1.4.9000 bindr_0.1
>
Spodziewam ta nowa rama proste dane, aby pierwsza kolumna zmieniona na new_name
. To również nie działa z rename_()
.
Aktualna wersja R to 3.4.3, a wersja dplyr to 0.7.4. Nie mogłem replikować tego w wersji R 3.3.3, ale udało mi się powielić to na wersji R 3.4.0. Zostało to przetestowane na całkowicie czystej sesji R.
Moje obecne rozwiązanie polega na przepisaniu części kodu z plyr::rename
, ponieważ to nadal działa, ale nie jest to idealne rozwiązanie, ponieważ wymaga przepisania dużej ilości kodu.
przykład Praca z plyr()
:
library(plyr)
df <- data.frame(old_name = seq(1:10), x = seq(1:10))
df %>% plyr::rename(replace = c('old_name' = 'new_name'))
Może to wynikać z użycia 'nowa_nazwa' i' stara_nazwa' w 'dplyr' i' 'nowa_nazwa'' i '' stara_nazwa'' (jako tekst) w' plyr'. Czy możesz również opublikować wersję 'rename _()', która nie działała z 'dplyr'? Kiedy rzuca ten błąd, co otrzymujesz, gdy uruchamiasz 'new_name' i' old_name'? – AntoniosK
Jeśli pojawi się błąd ponownie, uruchom 'sessionInfo()' natychmiast po pojawieniu się błędu i wyślij tutaj dane wyjściowe. – Clarinetist
'zmień nazwę _()' wersja: '' 'df%>% dplyr :: zmień nazwę _ ('nowa_nazwa' = 'stara_nazwa')' '' –