我设法使用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中一直出错:
错误:期望一个状态列表。
---看起来非标准评估的支持全部被打破。
任何人都有解决方案吗?
答案 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)