Linux Centos 7上的dplyr 0.7.5,选择功能不起作用

时间:2018-05-08 16:31:26

标签: r dplyr tidyverse

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

 devtools::install_github("tidyverse/dplyr")
哦,伙计,这并不容易。在安装这个新的dplyr之前,必须更新无数的软件包。

在dplyr 0.7.5之前,我使用的是0.5.0。但是版本0.5.0不支持“sparklyr”,我用它从磁盘读取镶木地板文件并转换为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中一直出错:

  

错误:期望一个状态列表。

---看起来非标准评估的支持全部被打破。

任何人都有解决方案吗?

1 个答案:

答案 0 :(得分:2)

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

使用{'a':1,'y':1,'z':1,'x':5} 创建一个干净的环境,并检查问题是否真的是由于您的dplyr版本造成的。然后,您可以从脚本中添加部件,并在问题开始出现时缩小范围。

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

packrat

(会话信息:)

# 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)