Как мне создать граненую диаграмму рассеяния в R? - PullRequest
0 голосов
/ 21 января 2020

Я довольно новичок в R, и я некоторое время работал над этой проблемой и мог бы помочь. У меня есть файл CSV (называемый cleaned_do c), который содержит рейтинг и процент проданного продукта в каждой стране. Я хотел бы сравнить 2 страны на ограненной диаграмме рассеяния с 2 гранями для всего продукта, проданного в этих конкретных странах. происхождение.

Когда я пытаюсь сделать это следующим образом

ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid( ~ Origin ) 

, я получаю граненые диаграммы рассеяния для всех перечисленных стран. Однако я просто хочу сравнить 2 (для этого примера я выбрал Германию и Францию), есть еще компоненты, которые я хочу добавить позже, но это в основном эстетика, поэтому я просто хочу пока сделать это простым. Основываясь на том, что я видел в Stackoverflow и других местах, я попытался сделать это следующим образом

countries <- gather(cleaned_doc, key="measure", value="value", c(Origin["Germany"], Origin["France"]))

answer2 <- ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid(~ countries )

Однако тогда я получаю следующую ошибку

Error: At least one layer must contain all faceting variables: `countries`.
* Plot is missing `countries`
* Layer 1 is missing `countries`

, и я действительно не уверен что это значит и что я делаю не так. поэтому я был бы очень признателен за любую помощь.

1 Ответ

1 голос
/ 21 января 2020

Вам просто нужно создать фрейм данных, в котором нет других стран. Вы можете использовать filter или просто сделать это в базе R следующим образом:

cleaned_doc2 <- cleaned_doc[which(cleaned_doc$Origin == "Germany" | cleaned_doc$Origin == "France"),]
cleaned_doc2$Origin <- as.character(cleaned_doc2$Origin)

ggplot(data = cleaned_doc, aes(Percent, Rating)) +
  geom_point() +
  labs( y = "Rating", x = "Percent") + 
  facet_grid( ~ Origin )
...