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 lesreprexet < a href = "https://cran.r-project.org/web/packages/datapasta/vignettes/how-to-datapasta.html" rel = "nofollow noreferrer">datapastaa > 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 (...)