Tôi đang cố đổi tên cột bằng dplyr::rename()
và R đang trả lại lỗi này mà tôi không thể tìm thấy ở bất kỳ nơi nào trực tuyến.đổi tên dplyr - Lỗi: `new_name` = old_name phải là một biểu tượng hoặc một chuỗi, chứ không phải công thức
Error: `new_name` = old_name must be a symbol or a string, not formula
dụ tái sản xuất với một khung dữ liệu 2 cột: info
library(dplyr)
df <- data.frame(old_name = seq(1:10), x = seq(1:10))
df %>% dplyr::rename(new_name = old_name)
Session:
> 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
>
tôi mong đợi khung dữ liệu đơn giản mới này để có cột đầu tiên đổi tên thành new_name
. Điều này cũng không hoạt động với rename_()
.
Phiên bản R hiện tại là 3.4.3 và phiên bản dplyr là 0.7.4. Tôi không thể sao chép điều này trên phiên bản R 3.3.3, nhưng đã có thể sao chép nó trên phiên bản R 3.4.0. Điều này đã được thử nghiệm trên một phiên R hoàn toàn sạch sẽ.
Giải pháp hiện tại của tôi là viết lại một phần mã của tôi bằng plyr::rename
vì vẫn hoạt động, nhưng điều này không lý tưởng vì nó yêu cầu tôi viết lại nhiều mã.
dụ Làm việc với plyr()
:
library(plyr)
df <- data.frame(old_name = seq(1:10), x = seq(1:10))
df %>% plyr::rename(replace = c('old_name' = 'new_name'))
Có thể phải thực hiện bằng cách sử dụng 'new_name' và' old_name' trong 'dplyr' và' 'new_name'' và '' old_name'' (dưới dạng văn bản) trong' plyr'. Bạn cũng có thể đăng phiên bản 'rename _()' không hoạt động với 'dplyr' không? Khi nó ném lỗi đó, bạn sẽ nhận được gì khi chạy 'new_name' và' old_name'? – AntoniosK
Nếu bạn gặp lại lỗi, hãy chạy 'sessionInfo()' ngay lập tức sau khi bạn thấy lỗi xuất hiện và đăng đầu ra ở đây. – Clarinetist
'đổi tên _()' phiên bản: '' 'df%>% dplyr :: đổi tên _ ('new_name' = 'old_name')' '' –