Как установить NAs при условии, что другой столбец содержит указанную строку?

#r

#r

Вопрос:

У меня есть фрейм данных со следующей информацией:

 test_01 <- data.frame(Party_1 = c("ABC", "ABC", "ABC"),
                      Party_2 = c("DEF", "DEF", "GHI"),
                      Party_3 = c("GHI", "Independent", "Independent"),
                      Ministry_No_P1 = c(12,10,10),
                      Ministry_No_P2 = c(6,5,2),
                      Ministry_No_P3 = c(2,1,1)
                      )
test_01
  

Сейчас я ищу способ установить количество министерств ( Ministry_No_Px ) соответствующего Party_x на NA всякий раз, когда в Party_x столбце найдена строка с именем «Независимый».

Я хочу связать настройку Ministry_No_Px с NA при условии нахождения «независимой» строки в Party_x .

Ответ №1:

Предполагая, что столбцы расположены в соответствующем порядке, создайте логическую матрицу со строковыми столбцами, т.Е. индексом столбца от 1 до 3, и используйте это для присвоения соответствующих значений в числовых столбцах 4-6 как NA

 test_01[4:6][test_01[1:3] == 'Independent'] <- NA
  

-вывод

 test_01
#  Party_1 Party_2     Party_3 Ministry_No_P1 Ministry_No_P2 Ministry_No_P3
#1     ABC     DEF         GHI             12              6              2
#2     ABC     DEF Independent             10              5             NA
#3     ABC     GHI Independent             10              2             NA