You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言rename函数报错:无适用于character类对象的方法

问题:dplyr rename报错“no applicable method for 'rename' applied to an object of class "character"”

问题场景

使用dplyr包处理数据框wybory_2005_raw,先选取4列,再对其中2列重命名,代码如下:

library(dplyr)

wybory_2005 <- wybory_2005_raw %>%
  select('Powiat', 'Rok', '6 - Prawo i Sprawiedliwość', '8 - Platforma Obywatelska') %>%
  rename('Prawo i Sprawiedliwość' = '6 - Prawo i Sprawiedliwość','Platforma Obywatelska' = '8 - Platforma Obywatelska')

报错信息

no applicable method for 'rename' applied to an object of class
"character"

补充信息

数据框wybory_2005_raw前6行结构

> dput(head(wybory_2005_raw))
structure(list(`Nr
okregu` = c(1, 1, 1, 1, 1, 1), TERYT = c("020100", 
"020300", "020500", "020600", "020700", "020900"), Powiat = c("boleslawiecki", 
"glogowski", "jaworski", "jeleniogórski", "kamiennogórski", "legnicki"
), `Uprawnieni do glosowania` = c(70154, 71771, 42639, 52884, 
37966, 41918), `Karty wydane (frekwencja)` = c(24559, 27600, 
15079, 18358, 12644, 14565), `Karty wazne (glosy oddane)` = c(24551, 
27582, 15040, 18348, 12642, 14536), `Glosy niewazne` = c(1123, 
1163, 621, 969, 711, 618), `Glosy wazne` = c(23428, 26419, 14419, 
17379, 11931, 13918), `1 - Ruch Patriotyczny` = c(389, 128, 173, 
231, 132, 110), `2 - Polska Partia Pracy` = c(181, 189, 90, 148, 
107, 110), `3 - Liga Polskich Rodzin` = c(1774, 1588, 1091, 1155, 
829, 1119), `4 - Partia Demokratyczna` = c(2137, 1834, 189, 429, 
862, 338), `5 - Socjaldemokracja Polska` = c(585, 965, 443, 1124, 
301, 277), `6 - Prawo i Sprawiedliwosc` = c(4985, 7899, 4494, 
3620, 3473, 2730), `7 - Sojusz Lewicy Demokratycznej` = c(3308, 
3720, 1735, 2467, 1830, 1663), `8 - Platforma Obywatelska` = c(5910, 
5562, 2603, 5129, 2202, 2279), `9 - Polska Partia Narodowa` = c(48, 
109, 41, 57, 37, 48), `10 - Polskie Stronnictwo Ludowe` = c(708, 
699, 913, 558, 406, 1641), `11 - Centrum` = c(66, 104, 125, 46, 
42, 45), `12 - Platforma Janusza Korwin-Mikke` = c(466, 411, 
186, 443, 135, 154), `13 - Ogólnopolska Koalicja Obywatelska O.K.O.` = c(0, 
0, 0, 0, 0, 0), `14 - Polska Konfederacja - Godnosc i Praca` = c(0, 
0, 0, 0, 0, 0), `15 - Samoobrona RP` = c(2562, 3090, 2244, 1856, 
1514, 3318), `16 - Inicjatywa RP` = c(0, 0, 0, 0, 0, 0), `17 - Dom Ojczysty` = c(267, 
83, 61, 78, 35, 51), `18 - Narodowe Odrodzenie Polski` = c(42, 
38, 31, 38, 26, 35), `19 - Stronnictwo Pracy` = c(0, 0, 0, 0, 
0, 0), `19  - Spoleczni Ratownicy` = c(0, 0, 0, 0, 0, 0), `19  - Mniejszosc Niemiecka` = c(0, 
0, 0, 0, 0, 0), `19 - Mniejszosc Niemiecka Slaska` = c(0, 0, 
0, 0, 0, 0), Rok = c(2005, 2005, 2005, 2005, 2005, 2005)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

R环境信息

> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    
system code page: 1250

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] zoo_1.8-12      writexl_1.4.2   plm_2.6-3       lubridate_1.9.2 forcats_1.0.0   stringr_1.5.0   dplyr_1.1.2     purrr_1.0.1    
 [9] tidyr_1.3.0     tibble_3.2.1    ggplot2_3.4.2   tidyverse_2.0.0 dbplyr_2.3.3    readr_2.1.4     readxl_1.4.2   

loaded via a namespace (and not attached):
 [1] tidyselect_1.2.0  lattice_0.21-8    colorspace_2.1-0  vctrs_0.6.1       generics_0.1.3    htmltools_0.5.5   utf8_1.2.3       
 [8] rlang_1.1.0       pillar_1.9.0      later_1.3.0       glue_1.6.2        withr_2.5.0       DBI_1.1.3         lifecycle_1.0.3  
[15] munsell_0.5.0     gtable_0.3.3      cellranger_1.1.0  bdsmatrix_1.3-6   miscTools_0.6-28  tzdb_0.3.0        fastmap_1.1.1    
[22] httpuv_1.6.9      lmtest_0.9-40     parallel_4.1.3    fansi_1.0.4       Rcpp_1.0.10       xtable_1.8-4      promises_1.2.0.1 
[29] scales_1.2.1      mime_0.12         maxLik_1.5-2      hms_1.1.3         digest_0.6.31     stringi_1.7.12    collapse_1.9.5   
[36] rbibutils_2.2.13  grid_4.1.3        Rdpack_2.5        cli_3.4.1         tools_4.1.3       sandwich_3.0-2    magrittr_2.0.3   
[43] Formula_1.2-5     pkgconfig_2.0.3   ellipsis_0.3.2    MASS_7.3-58.3     timechange_0.2.0  rstudioapi_0.15.0 R6_2.5.1         
[50] nlme_3.1-162      compiler_4.1.3 

解决方案

核心原因

报错根源是列名拼写不一致:数据框中实际列名是6 - Prawo i Sprawiedliwosc(结尾为osc),但代码中写的是6 - Prawo i Sprawiedliwość(结尾为ść)。select找不到对应列,返回了字符向量而非数据框,导致后续rename无法处理。

修复后的代码

library(dplyr)

wybory_2005 <- wybory_2005_raw %>%
  select(Powiat, Rok, `6 - Prawo i Sprawiedliwosc`, `8 - Platforma Obywatelska`) %>%
  rename(`Prawo i Sprawiedliwość` = `6 - Prawo i Sprawiedliwosc`,
         `Platforma Obywatelska` = `8 - Platforma Obywatelska`)

额外建议

  • 处理带特殊字符、空格的列名时,用反引号`包裹比单引号更稳妥,避免编码或拼写误差。
  • 可通过colnames(wybory_2005_raw)查看完整列名,直接复制粘贴避免手动输入错误。

内容的提问来源于stack exchange,提问作者Viktor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:19:54