Je souhaite définir par programme un nom de colonne pour la fonction dplyr::top_n
.Définition d'un nom de colonne par programme dans dplyr :: top_n
getSubset <- function(df, t, f) {
df %>%
top_n(t, wt = eval(as.name(f), envir = df))
}
data.frame(x = 1:20, y = 20:1) %>%
getSubset(10, "x")
Et il me dit que Error: object 'f' not found
. J'ai essayé de jouer avec le paquet lazyeval
mais de toute façon je continue à mal comprendre le concept. Quelqu'un pourrait-il me pousser dans la bonne direction? Merci!
Merci pour les suggestions. Cette fonction 'getSubset <- (df, t, f) { df%>% mute _ (. Points = liste (.w. = F))%>% top_n (t, wt = .w.)%> % select (- .w.) } 'semble fonctionner aussi. Dommage qu'il n'y ait pas de moyen évident d'utiliser la méthode sans créer de colonne d'évaluation supplémentaire – Drey