Выберите строки, которые имеют конкретную строку в столбце A, но отсутствуют в столбце X, Y или Z в R - PullRequest
1 голос
/ 12 февраля 2020

У меня есть фрейм данных, который я хотел бы установить на основе двух условий. Во-первых, я хотел бы выбрать строки, содержащие строку «A» в столбце 5. Во-вторых, я хочу убедиться, что в этих строках нет строки «Y» в столбцах с 6 по 50.

Я могу легко выбрать первое условие, но у меня проблемы со вторым.

# example input (data)

1 2 3 4 5 6 7 8 9 ETC TO 50
X X X X A Z Z Z Z 
X X X X A A Z Z Z
X X X X A Z Y Y Z
X X X X B X A Z Z
X X X X A Z Y B X

# example output (data2)

1 2 3 4 5 6 7 8 9 ETC TO 50
X X X X A Z Z Z Z 
X X X X A A Z Z Z

# code I have tried

data2 <- data[data$`5` == "A" & data[,6:50] != "Y", ]

1 Ответ

1 голос
/ 12 февраля 2020

Используя dplyr, вы можете использовать filter

library(dplyr)

data %>% filter(`5` == "A") %>% filter_at(6:50, all_vars(. != "Y"))

Или в базе R:

data[data$`5` == "A" & rowSums(data[6:50] == "Y") == 0, ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...