У меня есть данные, называемые data_v, а один из столбцов - оклады. Диапазон данных составляет от 0 до 140 000. Я хочу найти разные диапазоны (range1: 0-10000, range2: 10000-20000 ...), вычислить медиану каждого диапазона и заменить диапазон его медианой.Найдите диапазон в R и замените его на медиану
Используя это я могу получить желаемый результат:
first = data_v$salaries[data_v$salaries>=0 & data_v$salaries<10000]
data_v$salaries[data_v$salaries>=0 & data_v$salaries<10000] = median(first)
second = data_v$salaries[data_v$salaries>=10000 & data_v$salaries<20000]
data_v$salaries[data_v$salaries>=10000 & data_v$salaries<20000] = median(second)
.............
ten=data_v$salaries[data_v$salaries>=90000 & data_v$salaries<=100000]
data_v$salaries[data_v$salaries >= 90000 & data_v$salaries <= 100000] = median(ten)
Выход:
table(data_v$salaries)
median 7949 17523 25939 34302 42827 56840 65423 73292 81900 95479.75
# 130 2022 8481 9233 2661 1270 3864 2232 176 4
Я попытался реализовать ту же самую вещь с циклом while без успеха:
i <- 0;
while(i <=140000) {
m = data_v$salaries[data_v$salaries >= i & data_v$salaries < (i + 10000)]
data_v$salaries[data_v$salaries >= i & data_v$salaries < (i + 10000)] = median(m)
i <- i + 10000; }
Любая помощь/предложения более приветствуются.
Привет Biljana, я хотел бы использовать dplyr, но могли бы Вы дать нам воспроизводимый пример: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – biomiha
Согласен, мы могли бы использовать dplyr или data.table. Оба пакета отлично подходят для обработки данных. Репродуктивный пример был бы оценен, чтобы дать вам полный ответ. – cderv