我要将条件应用于数据框 x 。该条件基于另一个向量。
如果我的数据框中的分支名称与向量的分支名称匹配。我想做一些数字列 (十月,十一月,十二月,一月)在我的数据框中为零。
输入数据框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
谢谢
答案 0 :(得分:0)
您可以对列和行进行子集并将值更改为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")