2017-04-26 3 views
3

Ich versuche einen Wechsel auf die "neue" tidyverse ecosystem und versuchen, das Laden der alten Pakete von Wickham et al. Ich habe mich früher auf meine Codierung verlassen. Ich fand round_any Funktion von plyr nützlich in vielen Fällen, wo ich benutzerdefinierte Rundung für Parzellen, Tabellen usw. benötigt.round_any Äquivalent für dplyr?

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 

Gibt es ein Äquivalent für round_any Funktion von plyr Paket in tidyverse?

+2

Es nicht den Fall, aber die Funktion ist ganz einfach, in diesem Fall ' Boden (x/0,1) * 0,1 '. Um das Laden des Pakets zu vermeiden, verwenden Sie die '::' -Notation: 'plyr :: round_any'. – Axeman

+2

Es scheint, dass es durch 'ggplot2 :: cut_width' ersetzt wurde. Siehe https://github.com/tidyverse/ggplot2/releases/tag/v2.0.0 – FlorianGD

Antwort

3

ggplot::cut_width wie in einem der Kommentare gezeigt, gibt nicht einmal einen numerischen Vektor, sondern einen Faktor statt. Es ist also kein echter Ersatz.

Da round und nicht floor ist die Standardrundungsmethode, ein benutzerdefinierter Ersatz, bis eine (dplyr Lösung kann ankommen) wäre

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