Иметь несколько условий в подмножестве данных - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь отфильтровать фрейм данных с помощью функции подмножества, у меня много прикрепленных меток, и мне нужны только определенные метки c 15.

DataFrame (Пример):

X1     | X2    | Value
GCF2423 GCF1393   0
GCF2423 GCF1520   0
GCF2423 GCF3487   1
GCF1393 GCF2423   0
GCF1393 GCF1520   1
GCF1520 GCF1393   0
GCF1520 GCF3517   1
GCF3487 GCF1520   0

Фрагмент кода 1

p <- ggplot(data = dfids, aes(X1, X2)) + geom_tile(aes(fill = factor(value, 
                                                                     levels = c(-1, 0, 1))), colour = "white")

p <- p + geom_label_repel(data = dfids), aes(label = X1), size=2.5,nudge_x=-2,nudge_y=-2)

который произвел рисунок:

enter image description here

Как уже упоминалось, я хочу выполнить различные условия, для которого я использовал метод подмножества в моем фрейме данных, как показано ниже, когда я пытаюсь выполнить более одного условия, он использует только первые два доступных условия. Я не уверен, что мне придется вместо этого изменять aes () , а не функцию subset () .

Фрагмент кода 2

p <- p + geom_label_repel(data = subset(dfids, X1 == "GCF2423" | X1 == "GCF1520" | X1 == "GCF1393"), 
                            aes(label = X1), size=2.5,nudge_x=-2,nudge_y=-2)

, который производит рисунок:

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Я воссоздал вашу ситуацию, но я смог просто без проблем использовать функцию подмножества.

Вы тестировали функцию подмножества вне ggplot, и у нее там были те же результаты?

0 голосов
/ 06 апреля 2020

Мне удалось исправить эту проблему с помощью функции filter () из пакета dplyr r, я поделился этим комментарием на свой вопрос на случай, если кто-то столкнется с аналогичная проблема:

p <- p + geom_label_repel(data = filter(dfids, X1 == "GCF2423" | X1 == "GCF1393" | X1 == "GCF1520"), 
                              aes(label = X1), size=2.5,nudge_x=-2,nudge_y=-2)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...