Если в столбце есть другие числа и вы хотите изменить только их, укажите c числа
-перед
e18
# AntPT AntPSDB AntPMDB
#1 1 1 100
#2 2 14 1
#3 4 2 2
#4 3 15 105
#5 1 7 24
#6 2 10 7
#7 3 11 8
Теперь мы l oop над интересующими столбцами с lapply
и replace
значениями в столбце до 0, где они находятся в диапазоне от 2 до 10
e18[c("AntPT", "AntPSDB", "AntPMDB")] <- lapply(e18[c("AntPT",
"AntPSDB", "AntPMDB")], function(x) replace(x, x %in% 2:10, 0))
и указанными c числами в столбцах 'AntPSDB', 'AntPMDB' (10, От 100) до 1
e18$AntPSDB[e18$AntPSDB == 10] <- 1
e18$AntPMDB[e18$AntPMDB == 100] <- 1
- после
e18
# AntPT AntPSDB AntPMDB
#1 1 1 1
#2 0 14 1
#3 0 0 0
#4 0 15 105
#5 1 0 24
#6 0 0 0
#7 0 11 0
, а затем составляют сумму
e18$Ant_Part <- (e18$AntPT + e18$AntPSDB + e18$AntPMDB)
data
e18 <- data.frame(AntPT = c(1, 2, 4, 3, 1, 2, 3),
AntPSDB = c(1, 14, 2, 15, 7, 10, 11),
AntPMDB = c(100, 1, 2, 105, 24, 7, 8))