首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在包中使用uq()函数?

如何在包中使用uq()函数?
EN

Stack Overflow用户
提问于 2016-11-07 17:09:58
回答 1查看 597关注 0票数 1

我对uq()函数的行为感到困惑。当我使用uq()lazyeval::uq()时,行为是不一样的。

以下是我的可复制的例子:

首先,我生成一个假数据集。

代码语言:javascript
复制
library(tibble)
library(lazyeval)
fruits <- c("apple", "banana", "peanut")
price <- c(5,6,4)
table_fruits <- tibble(fruits, price)

然后,我只使用toy_function_v1编写了一个玩具函数uq()

代码语言:javascript
复制
toy_function_v1 <- function(data, var) {
  lazyeval::f_eval(f = ~ uq(var), data = data)
}

第二个函数使用lazyeval::uq()

代码语言:javascript
复制
toy_function_v2 <- function(data, var) {
  lazyeval::f_eval(f = ~ lazyeval::uq(var), data = data)
}

令人惊讶的是,v1和v2的输出并不相同:

代码语言:javascript
复制
> toy_function_v1(data = table_fruits, var = ~ price)
[1] 5 6 4
> toy_function_v2(data = table_fruits, var = ~ price)
price

有什么解释吗?

我知道使用syntaxe package::function()来使用新包中的函数是一个很好的实践。那么,在这种情况下,最好的解决方案是什么?

这是我的session_info:

代码语言:javascript
复制
> devtools::session_info()
Session info ----------------------------------------------------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.3.1 (2016-06-21)
 system   x86_64, linux-gnu           
 ui       RStudio (1.0.35)            
 language (EN)                        
 collate  C                           
 tz       <NA>                        
 date     2016-11-07                  

Packages --------------------------------------------------------------------------------------------------------------------------------------------------------
 package    * version    date       source                          
 Rcpp         0.12.7     2016-09-05 CRAN (R 3.2.3)                  
 assertthat   0.1        2013-12-06 CRAN (R 3.2.2)                  
 devtools     1.12.0     2016-06-24 CRAN (R 3.2.3)                  
 digest       0.6.10     2016-08-02 CRAN (R 3.2.3)                  
 lazyeval   * 0.2.0.9000 2016-10-14 Github (hadley/lazyeval@c155c3d)
 memoise      1.0.0      2016-01-29 CRAN (R 3.2.3)                  
 tibble     * 1.2        2016-08-26 CRAN (R 3.2.3)                  
 withr        1.0.2      2016-06-20 CRAN (R 3.2.3) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 11:10:03

它只是uq()函数中的一个bug。这个问题在Github:https://github.com/hadley/lazyeval/issues/78上是公开的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40470712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档