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

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

从 R 3.3 更新到 R 3.4 后,我在使用 data.table 包时出现此错误:

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

有没有人遇到过同样的情况?我正在考虑降级到 "fix" 这个。

这是我的会话信息:

> 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 base。

有效!