Реализация кода в R условно на основе особенностей набора данных - PullRequest
1 голос
/ 04 февраля 2020

Я хочу упростить мой код и свести к минимуму ручные настройки в зависимости от набора данных, который я запускаю через него. Т.е. я получаю пакеты данных по странам, но каждая страна немного отличается с точки зрения полей и названий полей, поэтому требует настройки каждый раз, когда я запускаю новую страну. Я хотел бы устранить твики и сделать выборочное кодирование. (Многие из проблем, которые я легко решаю с помощью ifelse (), но я не смог, например, выполнить условное изменение).

Это вопрос логики c, поэтому, пожалуйста, дайте мне знать, если я должен был загрузить набор данных.

Это новый пример, который я только что добавил. Я понял, так как тот, который я использовал, был мутатным, было много инструментов, чтобы ответить на вопрос. В этом примере я имею дело с данными из разных стран, каждая из которых имеет разную размерность, которые я хочу сохранить. Я, конечно, мог бы использовать разные коды для каждого, но я думаю, что было бы чище, если бы я использовал один и тот же код, но он учитывал данные разных стран.

Я создал эту версию, используя mutate с ifelse, создавая переменные для этих необычных измерений, и это работает. Мне интересно, есть ли альтернатива в R, где я могу запустить отборные фрагменты кода (и хороший ответ может быть, такой опции нет внутри каналов). [Я знаю, как делать с отдельными наборами кода и если {} else {}.

Имейте в виду, это часть гораздо большего блока кода, который мне нужен для запуска всех стран ... это всего лишь иллюстративное подмножество.

# As you can see, I comment out each countries unique variables (and spelling!)
P_Region_HP_Brand <- P_Region_HP %>%
  left_join(M_brand) %>%
  left_join(M_prodcat) %>%
  group_by(Calendar_Year, Calendar_Quarter, Calendar_Month, Calendar_Month_txt, Date, 
           region_b_frcst5, region_b_frcst7, Country, country_b, 
           BrandSummary, rank_m, Launch_Year, Launch_Month, Model, PriceSegment, SumProdCat, ProductCategory, True_Wireless, ProductType,
           # SPORTS, VOICE.ASSISTANT.FUNCTION          # JPN
           # Sports, Heart.Rate.Sensor                 # EU3
           # HEARTMON, WTRRSST                         # USA
           Sports, DIST_TYP                          # CHN
           ) %>%
  summarize(Dollars = sum(Dollars),                  # ALL (inc USA)
            Local_Currency = sum(Local_Currency),    # ALL
            Units = sum(Units)) %>%
  select(Calendar_Year, Calendar_Quarter, Calendar_Month, Calendar_Month_txt, Date, Launch_Year, Launch_Month,
         region_b_frcst5, region_b_frcst7, Country, country_b, 
         BrandSummary, Model, PriceSegment, SumProdCat, ProductCategory, True_Wireless, ProductType, 
         Units, Dollars, Local_Currency, rank_m,             # ALL (inc USA)
         # HEARTMON, WTRRSST,                          # USA
         # SPORTS, VOICE.ASSISTANT.FUNCTION            # JPN
         # Sports, Heart.Rate.Sensor                   # EU3
         Sports, DIST_TYP                            # CHN
         ) %>%
  as.data.frame() %>%
  arrange(Country, desc(Date), desc(Local_Currency))

Кто-нибудь знает решение для этого, которое позволит мне сделать мой код достаточно простым? & запустить выбранные строки для заданных стран?

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