Как заменить отрицательные значения в столбце данных на другое значение - PullRequest
0 голосов
/ 02 июня 2018

У меня есть большой фрейм данных в R с почти миллионом строк и 91 столбцом.Для одного конкретного столбца мне нужно заменить все отрицательные значения на «значение + 360».

Все 0 или положительные значения должны оставаться неизменными.

Существует множество решений для установки отрицательных значений в 0 или в NA, но я не могу заставить это работать.

Ниже приведены примеры моих попыток с кадром данных под названием df и функцией под названием Bearing.

df$Bearing = apply(df$Bearing, 2, function(x){x[x<0] = x[x+360]})

df$Bearing[df$Bearing <0] <- df%Bearing +360

Каков наилучший способ достижения моей цели?

Ответы [ 3 ]

0 голосов
/ 02 июня 2018

Попробуйте:

df$Bearing[df$Bearing <0] <- df$Bearing[df$Bearing <0] +360
0 голосов
/ 02 июня 2018

Если скорость связана с размером вашего data.frame, рассмотрите возможность использования data.table.

library(data.table)
setDT(df)
df[, bearing := ifelse(bearing < 0, bearing + 360, bearing)]
0 голосов
/ 02 июня 2018

Я бы использовал

df <- within(df, Bearing <- Bearing + ifelse(Bearing < 0, 360, 0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...