R data.table 和 STRING_ELT() 错误:如何修复"字符向量"与"字符"错误?

R data.table and STRING_ELT() error: How to fix 'character vector' vs 'char' error?

本文关键字:错误 字符 何修复 向量 table data STRING ELT      更新时间:2023-10-16

在使用data.table软件包时从r 3.3更新为r 3.4后,我有此错误:

STRING_ELT() can only be applied to a 'character vector', not a 'char'

有人也经历过吗?我正在考虑降级到"修复"此操作。

这是我的会话信息:

> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.2 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
 [1] bindrcpp_0.2      purrrlyr_0.0.2    readxl_1.0.0      stringr_1.2.0    
 [5] bit64_0.9-7       bit_1.1-12        dtplyr_0.0.2      data.table_1.10.4
 [9] dplyr_0.7.1       purrr_0.2.2.2     readr_1.1.1       tidyr_0.6.3      
[13] tibble_1.3.3      ggplot2_2.2.1     tidyverse_1.1.1  
loaded via a namespace (and not attached):
 [1] Rcpp_0.12.11     cellranger_1.1.0 compiler_3.4.0   plyr_1.8.4       bindr_0.1       
 [6] forcats_0.2.0    tools_3.4.0      jsonlite_1.5     lubridate_1.6.0  nlme_3.1-131    
[11] gtable_0.2.0     lattice_0.20-35  pkgconfig_2.0.1  rlang_0.1.1      psych_1.7.5     
[16] parallel_3.4.0   haven_1.0.0      xml2_1.1.1       httr_1.2.1       hms_0.3         
[21] grid_3.4.0       glue_1.1.1       R6_2.2.2         foreign_0.8-69   modelr_0.1.0    
[26] reshape2_1.4.2   magrittr_1.5     scales_0.4.1     rvest_0.3.2      assertthat_0.2.0
[31] mnormt_1.5-5     colorspace_1.3-2 stringi_1.1.5    lazyeval_0.2.0   munsell_0.4.3   
[36] broom_0.4.2     

完全愚蠢的解决方案:

  1. 使用apt-get uninstall apt-get autoclean卸载所有内容。
  2. 删除其他冲突的R版本,例如Mran。
  3. 删除所有用户包目录。
  4. 再次重新安装r基础。

它有效!