Как применить условие для фрейма данных путем сравнения значений вектора - PullRequest
0 голосов
/ 07 мая 2020

Я хочу применить условие к моему фрейму данных x . Условие основано на другом векторе.

Если имя ветки в моем фрейме данных совпадает с таковым у вектора. Я хочу, чтобы определенные столбцы numeri c (октябрь, ноябрь, декабрь c, январь) были равны нулю в моем фрейме данных.

enter image description here

Фрейм входных данных x:

Oct Nov Dec Jan Branch  Fin-Year    Year    State
143 1   89  147 Chennai F.Y.2019-20 2020    Tamil Nadu
0   1   101 98  Madurai F.Y.2020-21 2021    Tamil Nadu
148 1   206 183 Coimbatore  F.Y.2019-20 2020    Tamil Nadu
0   1   180 140 Theni   F.Y.2020-21 2021    Tamil Nadu

Спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете подгруппировать столбцы и строки и изменить значения на 0.

cols <- c('Oct', 'Nov', 'Dec', 'Jan')
x[x$Branch %in% y, cols] <- 0

x
#  Oct Nov Dec Jan     Branch    Fin.Year Year     State
#1   0   0   0   0    Chennai F.Y.2019-20 2020 TamilNadu
#2   0   0   0   0    Madurai F.Y.2020-21 2021 TamilNadu
#3 148   1 206 183 Coimbatore F.Y.2019-20 2020 TamilNadu
#4   0   1 180 140      Theni F.Y.2020-21 2021 TamilNadu

данные

x <- structure(list(Oct = c(143L, 0L, 148L, 0L), Nov = c(1L, 1L, 1L, 
1L), Dec = c(89L, 101L, 206L, 180L), Jan = c(147L, 98L, 183L, 
140L), Branch = c("Chennai", "Madurai", "Coimbatore", "Theni"
), Fin.Year = c("F.Y.2019-20", "F.Y.2020-21", "F.Y.2019-20", 
"F.Y.2020-21"), Year = c(2020L, 2021L, 2020L, 2021L), State = c("TamilNadu", 
"TamilNadu", "TamilNadu", "TamilNadu")), class = "data.frame", 
row.names = c(NA, -4L))
y <- c("Chennai", "Madurai")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...