首页 > 解决方案 > Linux Centos 7 上的 dplyr 0.7.5,选择功能不起作用

问题描述

我设法使用 github 开发版本在 Linux Centos 上安装了 dplyr 0.7.5:

 devtools::install_github("tidyverse/dplyr")

哦,伙计,这并不容易。在安装这个新的 dplyr 之前必须更新无数的包。

在 dplyr 0.7.5 之前,我使用的是 0.5.0。但是 0.5.0 版不支持“sparklyr”,我用它从磁盘读取 parquet 文件并转换为 spark 数据帧。无论如何,在我安装 dplyr 0.7.5 之后,许多旧的 dplyr 代码都坏了。例如:

df <- data.frame(A=c(1, 2, 3), B=c('a', 'b', 'c'))
a <- df %>% dplyr::select(A)

---- 这曾经在 dplyr 0.5.0 中工作,但我在 dplyr 0.7.5 中一直出错:

错误:需要一个 quosures 列表。

--- 看起来对非标准评估的支持都被打破了。

有人对此有解决方案吗?

标签: rdplyrtidyverse

解决方案


我目前正在运行 CentOS 7.4.1708,无法复制您描述的问题。

用于packrat创建一个干净的环境并检查问题是否真的是由于您的 dplyr 版本造成的。然后,您可以从脚本中添加部分,并在问题开始出现时缩小范围。

执行以下操作以创建干净的测试环境:

# Create a test folder
dir.create("test")
setwd("test")
# packrat creates a private package library, so you are sure about your package versions
if(!require(packrat)) install.packages("packrat")
packrat::init()
# Install the development version of dplyr
install.packages("devtools")
devtools::install_github("tidyverse/dplyr")
# Test your example
library(dplyr)
df <- data.frame(A=c(1, 2, 3), B=c('a', 'b', 'c'))
a <- df %>% dplyr::select(A)

(会议信息:)

R version 3.4.3 (2017-11-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS: /opt/Bio/R/3.4.3/lib64/R/lib/libRblas.so
LAPACK: /opt/Bio/R/3.4.3/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

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

other attached packages:
[1] dplyr_0.7.5.9000

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.16     packrat_0.4.9-1  digest_0.6.15    withr_2.1.2     
 [5] assertthat_0.2.0 R6_2.2.2         magrittr_1.5     git2r_0.21.0    
 [9] pillar_1.2.2     httr_1.3.1       rlang_0.2.0      curl_3.2        
[13] bindrcpp_0.2.2   devtools_1.13.5  tools_3.4.3      glue_1.2.0      
[17] purrr_0.2.4      compiler_3.4.3   pkgconfig_2.0.1  memoise_1.1.0   
[21] tidyselect_0.2.4 bindr_0.1.1      tibble_1.4.2   

推荐阅读