Оптимизировать множественную замену на основе условия для каждого идентификатора - PullRequest
0 голосов
/ 25 июня 2018

Какой самый быстрый способ сделать это?У меня есть много столбцов значений (> 100), в которых я должен заменить значения, когда значение valueAux равно нулю.Столбец «Значение1» должен быть установлен в ноль всегда, чтобы значение «Значение1Aux» (для той же строки) было равно нулю

Исходные данные:

df <- data.frame(ID = c(1,1,1,1,1,1,1,1),
 value1 = c(23, 0, 4, 1, 0, 0, 8, 12),
   value2 = c(0, 12, 56, 7, 8, 1, 8, 12),
  value1aux = c(0, 0, 89, 65, 0, 0, 0, 1),
  value2aux = c (1,1,0,0,4,15,67,12))

Результат требуемые данные:

df <- data.frame(ID = c(1,1,1,1,1,1,1,1),
 value1 = c(0, 0, 4, 1, 0, 0, 0, 12),
   value2 = c(0, 12, 0, 0, 8, 1, 8, 12),
  value1aux = c(0, 0, 89, 65, 0, 0, 0, 1),
  value2aux = c (1,1,0,0,4,15,67,12))

Код для оптимизации:

names <- colnames(df[2:3])
names2 <- colnames(df[4:5])
for (i in 1:nrow(df)){
df[i,names] <- replace (df[i,names], df[i,names2] == 0, 0)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...