使用dplyr(R)将条件表达式传递到用户定义的函数中

昌庆县

我正在尝试使用dplyr命令对子集和数据进行突变的函数。我的虚假数据是这样的:

newTest_rv <- data.frame(is_op=c(rep(0,6),rep(1,4)),
                     has_click=c(0,0,1,1,1,1,0,0,1,1),
                     num_pimp=c(3,5,1,2,3,5,2,5,3,5),
                     freq = c(rep(1,5),5,1,2,1,2)) 

我的功能是这样的:

reweight <- function(data, conds){
   require(dplyr)
   require(lazyeval)
   data %>% 
   filter_(lazy(conds)) %>%
   group_by(num_pimp) %>% 
   mutate_(lazy(new_num) = lazy(num_pimp) - lazy(sum(freq[lazy(!conds)]))) %>%   
   mutate(new_weight=freq*(1/new_num)) %>%
   ungroup()
 }

 > reweight(newTest_rv, is_op==0)

使用条件语句“ is_op == 0”的非标准评估似乎可以在其他地方使用,但不能在组“ lazy(sum(freq [lazy(!conds)]))”中的子集中使用。有什么办法可以解决这个问题?

谢谢!

弗里克先生

看来您对lazys有点过头了lazy()函数创建一个惰性对象,该对象基本上会延迟表达式的求值。您不能只编写标准表达式和惰性表达式。通常,您可以通过lazyevalinterp()函数将它们组合在一起我想你想要的是

mutate_(new_num = interp(~num_pimp - sum(freq[!(x)]), x=lazy(conds)))

在这里,我们使用interp()一个标准表达式(在这种情况下,使用公式语法),然后将惰性表达式作为子集向量插入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL用户定义函数中使用公用表表达式时出错

来自分类Dev

使用LinqToSQL将参数传递到表达式规范中

来自分类Dev

为什么在'if'条件的表达式部分中定义的函数在外部不可见?

来自分类Dev

将表达式传递给函数中的curve()

来自分类Dev

将表达式作为变量传递到曲线

来自分类Dev

将lambda表达式作为函数参数传递

来自分类Dev

如何将变量参数传递到XPath表达式中?

来自分类Dev

如何将表达式传递到LINQ查询中?

来自分类Dev

dplyr中的R用户定义函数摘要

来自分类Dev

R dplyr写函数,用于过滤器中的逻辑表达式

来自分类Dev

如何在xpath表达式中使用名称实现用户定义的函数?

来自分类Dev

将参数传递到包含带有stringr :: str_extract的dplyr管道表达式group_by的函数

来自分类Dev

R-在用户函数中获取与正则表达式模式匹配的表的列表

来自分类Dev

R dplyr将表达式作为函数的参数传递

来自分类Dev

在SQL用户定义函数中使用公用表表达式时出错

来自分类Dev

使用用户EasyIn的复杂条件表达式。

来自分类Dev

使用用户定义的函数作为布尔表达式

来自分类Dev

是否可以使用表达式在JMeter中创建用户定义变量?

来自分类Dev

在R中,将ls()函数与正则表达式一起使用以仅保存字符对象吗?

来自分类Dev

如何使用“ with”将多个变量传递到“ eval”表达式中?

来自分类Dev

如何将变量参数传递到XPath表达式中?

来自分类Dev

在嵌套函数中传递表达式

来自分类Dev

将条件表达式作为函数参数传递

来自分类Dev

将角度表达式传递给函数

来自分类Dev

在CasperJS中将变量传递到XPath表达式中

来自分类Dev

将表达式传递给R中的自定义函数

来自分类Dev

将函数作为参数传递时无效使用void表达式

来自分类Dev

使用lamdify添加两个numpy数组-将表达式作为函数参数传递

来自分类Dev

如何将if-then表达式添加到用户定义的函数中?

Related 相关文章

  1. 1

    在SQL用户定义函数中使用公用表表达式时出错

  2. 2

    使用LinqToSQL将参数传递到表达式规范中

  3. 3

    为什么在'if'条件的表达式部分中定义的函数在外部不可见?

  4. 4

    将表达式传递给函数中的curve()

  5. 5

    将表达式作为变量传递到曲线

  6. 6

    将lambda表达式作为函数参数传递

  7. 7

    如何将变量参数传递到XPath表达式中?

  8. 8

    如何将表达式传递到LINQ查询中?

  9. 9

    dplyr中的R用户定义函数摘要

  10. 10

    R dplyr写函数,用于过滤器中的逻辑表达式

  11. 11

    如何在xpath表达式中使用名称实现用户定义的函数?

  12. 12

    将参数传递到包含带有stringr :: str_extract的dplyr管道表达式group_by的函数

  13. 13

    R-在用户函数中获取与正则表达式模式匹配的表的列表

  14. 14

    R dplyr将表达式作为函数的参数传递

  15. 15

    在SQL用户定义函数中使用公用表表达式时出错

  16. 16

    使用用户EasyIn的复杂条件表达式。

  17. 17

    使用用户定义的函数作为布尔表达式

  18. 18

    是否可以使用表达式在JMeter中创建用户定义变量?

  19. 19

    在R中,将ls()函数与正则表达式一起使用以仅保存字符对象吗?

  20. 20

    如何使用“ with”将多个变量传递到“ eval”表达式中?

  21. 21

    如何将变量参数传递到XPath表达式中?

  22. 22

    在嵌套函数中传递表达式

  23. 23

    将条件表达式作为函数参数传递

  24. 24

    将角度表达式传递给函数

  25. 25

    在CasperJS中将变量传递到XPath表达式中

  26. 26

    将表达式传递给R中的自定义函数

  27. 27

    将函数作为参数传递时无效使用void表达式

  28. 28

    使用lamdify添加两个numpy数组-将表达式作为函数参数传递

  29. 29

    如何将if-then表达式添加到用户定义的函数中?

热门标签

归档