Как перекодировать отрицательные значения в набор переменных на основе условного оператора в R? - PullRequest
0 голосов
/ 31 мая 2019

R новичок здесь.В настоящее время я пытаюсь перекодировать набор переменных в R таким образом, чтобы все отрицательные значения в них перекодировались в положительные значения.

Ниже приведены смоделированные данные:

df <- data.frame(ID = c(1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011),
                 measure1 = rnorm(11, mean = 0, sd = 1),
                 measure2 = rnorm(11, mean = 0, sd = 1),
                 measure3 = rnorm(11, mean = 0, sd = 1),
                 measure4 = rnorm(11, mean = 0, sd = 1))

ЭтоФункция, которую я написал до сих пор:

df[2:5] <- sapply(df[2:5], function(x) {
  if(x<0) {
  return(x*-1)
}  else {
   return(x)
    }
  })

, хотя я получаю следующие ошибки:

Warning messages:
1: In if (x < 0) { :
  the condition has length > 1 and only the first element will be used
2: In if (x < 0) { :
  the condition has length > 1 and only the first element will be used
3: In if (x < 0) { :
  the condition has length > 1 and only the first element will be used
4: In if (x < 0) { :
  the condition has length > 1 and only the first element will be used

Любые идеи о том, как сделать эту работу?

Спасибо!

1 Ответ

4 голосов
/ 31 мая 2019

Вы можете использовать

df[, 2:5] <- abs(df[, 2:5])
...