Considérez un bloc de données:
Answer: 1) tidyr library screws up with it. Removing tidyr helps 2) use most updated dplyr library and group_by/ group_by_at/group_by(!!!syms(model.data.dim.names) works
J'essaie de group_by et de résumer cependant, j'obtiens toujours l'erreur
model.data.dim.names <- c("a", "b", "c") data2 <- data %>% group_by_(.dots = model.data.dim.names) %>% summarise( mean_adj1 = (mean(out, na.rm=FALSE)), mean_adj2 = (mean(out)/mean(rate)) )
Le code J'utilise comme suit:
Error in new_quosures(NextMethod()) : could not find function "new_quosures"
Veuillez noter que ce sont des données factices et l'erreur est reproduite dans le système d'exploitation Windows avec les données factices. De plus, je travaille sur le système d'exploitation Windows. De plus, j'ai essayé ce qui suit:
Pourriez-vous s'il vous plaît m'aider à comprendre la cause principale de l'erreur ou une alternative que je pourrais utiliser?
data = data.frame(a=c(1,1,1,2,2,3), b=c("apples", "oranges", "apples", "apples", "apples", "grapefruit"), c=c(12, 22, 22, 45, 67, 28), d=c("Monday", "Monday", "Monday", "Tuesday", "Wednesday", "Tuesday"), out = c(12, 14, 16, 18, 20, 22), rate = c(0.01, 0.02, 0.03, 0.04, 0.07, 0.06))
3 Réponses :
La fonction group-by_
est obsolète, la façon courante de le faire serait de convertir le vecteur de caractères en symboles, puis de les séparer en group_by
: < pré> XXX
Cela donne la même erreur: "Erreur dans new_quosures (NextMethod ()): impossible de trouver la fonction" new_quosures ""
Assurez-vous que vous disposez des versions les plus récentes de dplyr et rlang
Nous pourrions utiliser le group_by_at
de dplyr
qui peut prendre une chaîne comme entrée
library(dplyr) data %>% group_by_at(model.data.dim.names) %>% summarise( mean_adj1 = mean(out, na.rm=FALSE), mean_adj2 = mean(out) / mean(rate) ) # A tibble: 6 x 5 # Groups: a, b [4] # a b c mean_adj1 mean_adj2 # <dbl> <fct> <dbl> <dbl> <dbl> #1 1 apples 12 12 1200 #2 1 apples 22 16 533. #3 1 oranges 22 14 700 #4 2 apples 45 18 450 #5 2 apples 67 20 286. #6 3 grapefruit 28 22 367.
Cela donne la même erreur: "Erreur dans new_quosures (NextMethod ()): impossible de trouver la fonction" new_quosures ""
@BruceWayne Quelle est la version de dplyr
que vous avez? J'ai packageVersion ('dplyr') # [1] '0.8.0.1'
. group_by_at
est une nouvelle fonction
@BruceWayne n'est pas sûr du problème. Cela fonctionne bien pour moi
la bibliothèque tidyr s'en fout. Supprimer tidyr aide
J'obtiens la même erreur avec un code qui fonctionnait bien il y a à peine 2 semaines. Cela s'est produit lors de l'application de dplyr :: group_by ()
. J'avais la version 0.7.6 du package dplyr et je l'ai mise à jour vers 0.8.0.1. Cela a résolu le problème.
Vous avez probablement un package
dplyr
obsolète (qui est différent deplyr
) avec un packagerlang
mis à jour (ou peut-être vice versa). Pouvez-vous afficher les informations de version du package à partir desessionInfo ()
?