【问题标题】:round_any equivalent for dplyr?dplyr的round_any等价物吗?
【发布时间】:2017-09-23 11:19:31
【问题描述】:

我正在尝试切换到“新”tidyverse ecosystem 并尝试避免从 Wickham 等人加载旧包。我以前依赖我的编码。我发现plyr 中的round_any 函数在我需要对绘图、表格等进行自定义舍入的许多情况下很有用。例如

x <- c(1.1, 1.0, 0.99, 0.1, 0.01, 0.001) 

library(plyr)    

round_any(x, 0.1, floor)
# [1] 1.1 1.0 0.9 0.1 0.0 0.0

tidyverse 的 plyr 包中是否有与 round_any 等效的函数?

【问题讨论】:

标签: r dplyr rounding plyr tidyverse


【解决方案1】:

ggplot::cut_width 如在其中一个 cmets 中所指出的,甚至不返回数字向量,而是返回一个因子。所以它不是真正的替代品。

由于 round 而不是 floor 是默认舍入方法,因此在(dplyr 解决方案可能到达)之前的自定义替换将是

round_any = function(x, accuracy, f=round){f(x/ accuracy) * accuracy}

这个方法也可以直接从包含这个实现的plyr 包中使用。但是,将plyr 加载到工作区时要小心,这也会导致naming conflicts when using dplyr

【讨论】:

  • 你忘了告诉你复制了this code literally from the plyr package。当然这不是火箭科学,但给出适当的归属总是一个好主意。仍然投票支持您分享简单的代码。谢谢!
  • 感谢@MSBerends 指出令人遗憾的缺乏来源归属。我已经添加了它以及我最初的想法,为什么我当时没有选择直接使用plyr
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 2019-12-14
  • 2019-12-12
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多