Я хочу настроить / изменить значения в таблице в соответствии с их суммой строк и средним значением столбца.Например, у меня есть такая таблица:
df <- data.frame(postal_code=c("51493", "51493", "51493", "51493", "88821", "88821", "88821"),
street_section = c("1", "2", "3", "4", "1", "2", "3"),
v1 = c(23.2, 21.8, 15.0, 33.2, 53.0, 19.8, 25.5),
v2 = c(26.2, 10.2, 10.5, 22.2, 14.0, 25.2, 28.5),
v3 = c(33.3, 45.5, 55.2, 35.0, 23.5, 38.0, 42.5),
v4 = c(27.3, 20.8, 21.3, 20.2, 22.0, 15.6, 10.5))
df$row_sum <- rowSums(df[,3:6])
Столбцы V1, V2, V3, V4 содержат проценты, которые должны суммироваться вместе до 100%.Во второй таблице у меня есть средний процент переменных для почтового индекса:
df_postal_code <- data.frame(postal_code=c("51493", "88821"),
V1 = c(24.4, 33),
V2 = c(16.8, 23.2),
V3 = c(41.8, 31.8),
V4 = c(20.0, 18.1))
Мой вопрос: есть ли способ отрегулировать значения в V1, V2 .. в df таким образом, чтобы ониимеют то же значение, что и в df_postal_code, когда я объединяю их по почтовому индексу (рассчитываем среднее по почтовому индексу) И в то же время, что они составляют до 100% по строке?Есть также два ограничения:
Проценты должны иметь значения от 0 до 100
Изменения должны быть как можно ниже, например, еслимоя сумма строки равна 110%, я не хочу уменьшать значение на 10. Было бы лучше уменьшить несколько переменных.
В моей таблице более 8000 почтовых индексов, каждый из которых содержит около200 улиц, так что, возможно, стоит помнить и о производительности.