J'ai réussi à créer de petits graphiques radar multiples en utilisant le package ggplot2 'msleep', comme ci-dessous.
Mais quand je charge mon propre jeu de données et essaie de tracer en utilisant mes propres données, j'obtiens toujours l'erreur suivante:
Erreur de sélection (pays, démocratie, liberté, corruption):
objet 'pays' introuvable
Voici le code original:
# prepare data library(ggradar) library(scales) library(dplyr) radarData <- read.csv(file="Index_Data - radar-chart-wide (2).csv") radarData select(country, democracy, freedom, corruption) %>% rename(country = groups) %>% mutate_at(vars(-country), funs(rescale)) radarData
Et voici mon code qui me lance l'erreur:
# prepare data data(msleep, package = "ggplot2") library(ggradar) library(scales) library(dplyr) plotdata <- msleep %>% filter(name %in% c("Cow", "Dog", "Pig")) %>% select(name, sleep_total, sleep_rem, sleep_cycle, brainwt, bodywt) %>% rename(group = name) %>% mutate_at(vars(-group), funs(rescale)) plotdata # generate radar chart ggradar(plotdata, grid.label.size = 4, axis.label.size = 4, group.point.size = 5, group.line.width = 1.5, legend.text.size= 10) + labs(title = "Mammals, size, and sleep")
3 Réponses :
Je pense que le problème ici est avec l'appel renommer
. Il suit la syntaxe
df <- radarData %>% select(country, democracy, freedom, corruption) %>% mutate_at(vars(-country), funs(rescale)) df
mais vous l'avez utilisé dans l'autre sens.
Quoi qu'il en soit, puisque vous faites référence à la colonne country
dans le mutate_at
après cela, vous voudrez probablement garder le nom tel quel. Vous pouvez donc omettre l'appel à rename
:
rename(new_name = old_name)
Merci pour votre aide. Je l'ai fait fonctionner et j'ai raccourci les données pour plus de facilité ...
Voici le code:
# prepare data library(ggradar) library(scales) library(dplyr) library(ggplot2) radarDataShort <- read.csv(file="Index_Data - radar-chart-wide2 (1).csv") dfShort <- radarDataShort %>% select(country, democracy, freedom, corruption) %>% #mutate_at(vars(), mutate_at(vars(-country), funs(rescale)) dfShort # generate radar chart ggradar(dfShort, grid.label.size = 4, axis.label.size = 4, group.point.size = 0, group.line.width = 1) + facet_wrap(~country)
Cependant, lorsque j'essaye de facet_wrap, j'obtiens l'erreur suivante:
Erreur: au moins un calque doit contenir toutes les variables de facettes:
pays
. * Le tracé ne contient pas depays
* La couche 1 n'a pas depays
* La couche 2 n'a pas depays
* La couche 3 n'a pas depays
* La couche 4 n'a pas depays
* La couche 5 n'a pas depays
* La couche 6 n'a pas depays
* La couche 7 n'a pas depays
* La couche 8 n'a pas depays
* La couche 9 n'a pas depays
* La couche 10 n'a pas depays
* La couche 11 n'a pas depays
* La couche 12 n'a pas depays
* La couche 13 est manquantecountry
Et voici mon dernier code avec le facet_wrap
install.packages("devtools") devtools::install_github("ricardo-bion/ggradar") # prepare data library(ggradar) library(scales) library(dplyr) library(ggplot2) radarDataShort <- read.csv(file="Index_Data - radar-chart-wide2 (1).csv") dfShort <- radarDataShort %>% select(country, democracy, freedom, corruption) %>% #mutate_at(vars(), mutate_at(vars(-country), funs(rescale)) dfShort # generate radar chart ggradar(dfShort, grid.label.size = 4, axis.label.size = 4, group.point.size = 0, group.line.width = 1)
Merci encore!
Je l'ai compris. Pour une raison quelconque, le facet_wrap requis (~ group) et NOT (~ country). Je ne sais pas pourquoi, car le groupe n'est pas inclus dans mes données. C'est peut-être une fonction générique dans ggradar?
Merci quand même!
Bienvenue dans Stack Overflow! Pourriez-vous rendre votre problème reproductible en partageant un échantillon de vos données afin que d'autres puissent vous aider (veuillez ne pas utiliser
str ()
,head ()
ou capture d'écran)? Vous pouvez utiliser lesreprex
et < a href = "https://cran.r-project.org/web/packages/datapasta/vignettes/how-to-datapasta.html" rel = "nofollow noreferrer">datapasta
a > des packages pour vous aider. Voir aussi Aidez-moi à vous aider & Comment créer un excellent exemple R reproductible?tout d'abord, il semble y avoir un
%>%
manquant, juste avantselect (...)