Создание новых переменных на основе динамического числа других переменных в кадре данных - PullRequest
0 голосов
/ 11 июля 2019

У меня проблемы с созданием столбца Entity_x_charge для столбца Entity_x_delivery, потому что иногда после фильтрации данных по месяцам остается только 1, а иногда 2 или 3 отправленных объекта.

Теоретически я должен иметь возможность создать столбец для сборов за каждый столбец доставки. Однако явно их именование не работает, потому что они не всегда есть.

У меня это работает в Excel, но у него есть статические столбцы для каждой сущности. в R сущность будет иметь неявные NA, которые я борюсь с преодолением

Я не могу поделиться данными по соображениям конфиденциальности, но код пока приведен ниже:

library(tidyverse)
library(readxl)

headgate_totals_lateral_month <- headgate_data_entry %>%
  filter(!Entity == "DO NOT CHARGE", Month == current_month,
         Year == current_year) %>% group_by(Lateral) %>%
  summarise(total_lateral_deliveries_month = sum(AF))

headgate_totals_entity_month <- headgate_data_entry %>%
  filter(!Entity == "DO NOT CHARGE", Month == current_month,
         Year == current_year) %>% group_by(Lateral, Entity) %>%
         summarise(lateral_deliveries_month = sum(AF)) %>%
         spread(key=Entity, value =lateral_deliveries_month)


charges_lateral_month <- swp_charges_month %>%
  filter(Year== current_year, Month == current_month) %>%
         group_by(Lateral) %>% summarise(total_lateral_charges_month =                   
                                         sum(`State Aqueduct Deliveries`))

step_1_data <- Reduce(function(x,y) merge(x=x, y=y, by = "Lateral"),
                      list(headgate_totals_entity_month, 
                      headgate_totals_lateral_month, charges_lateral_month))  
step_1_data$equal_percent_delivery <- step_1_data$total_lateral_deliveries_month / 
                                      step_1_data$total_lateral_charges_month

Пример того, что мне нужно

step_1_data$ews_id_charges <- step_1_data$`EWS ID`/
                              step_1_data$equal_percent_delivery

step_1_data$tlbwsd_charges <- step_1_data$total_lateral_charges_month -                       
                              step_1_data$ews_id_charges

Столбец для каждой поставленной сущности работ. Они приземляются между step_1_data Lateral, который является первым столбцом, и total_lateral_deliveries, который меняет местоположение в зависимости от количества доставляемых объектов.

Мне нужен 1 столбец, заканчивающийся _charges для каждой сущности доставки, равной deliveries / equal_percent, а затем столбец для tlbwsd, равный total_lateral_charges_month - SUM(entity_charges)

Любые советы по изменению кода будут приняты хорошо. Я все еще учусь на ходу ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...