Требуется руководство по преобразованию кадра данных в двусторонние таблицы (с временными рядами) - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в R и хотел бы попросить совета по переводу имеющегося у меня фрейма данных в различные двусторонние таблицы (с временными рядами).

Фрейм данных состоит из списка возможности из Salesforce в различных столбцах «Имя» (символ), «Лицензия $» (число c), «Поддержка $» (число c), «Услуги $» (число c), а также «CloseDate» «(дата),« начало »(дата),« развертывание »(продолжительность), и т. д. c.

После этого мне нужно было бы перевести приведенное выше в 3 двусторонние таблицы (каждая из которых имеет дело с одной из 3-х числовых c переменных):

Для каждой двухсторонней таблицы имена строк следуют за именем по сравнению с временным рядом месяцев в текущем финансовом / календарном году, например, январь-2020, февраль-2020 и т. д. c.

В каждой двусторонней таблице мне нужно было бы заполнить ее данными из одной из трех числовых c переменных.

Например, для возможности AB C, Service $ / deploymentT необходимо повторять от начала до конца развертыванияT и т. Д.

Цель состоит в том, чтобы получить данные из объекта Opportunity в Salesforce. и применить манипуляции с данными для вывода в график доходов Excel, который соответствует принципам бухгалтерского учета.

Заранее благодарим всех, кто нашел время и силы, чтобы ответить на мой вопрос!

# Get Opportunity list from Salesforce.com
objectName <- "Opportunity"
fields <- c("Name","Sales_Region__c", "Amount", "License__c", "Enhanced_Support_Maintenance__c", "Professional_Services__c", "Contract_Start_Date__c", "CloseDate", "StageName", "Probability", "OwnerId")
opportunityDF <- rforcecom.retrieve(session, objectName, fields)

opportunityDFexpanded <- mutate(opportunityDF,
       kickoff = CloseDate %m+% months(1),
       deploymentT = ifelse ("Token" %in% Name, 6, 3),
       ILP = deploymentT + 12,
       golive = kickoff %m+% months(deploymentT),
       ILPend = kickoff %m+% months(ILP),
       warrantyexpiry = golive %m+% months(3),
       supportend = warrantyexpiry %m+% months(12),
       licenseRR = License__c / ILP,
       serviceRR = Professional_Services__c / ILP,
       supportRR = Enhanced_Support_Maintenance__c / 12
)

opportunityDFfiltered <-  opportunityDFexpanded %>%
    filter(Contract_Start_Date__c > Sys.Date()
          & !str_detect(Name, "[R]")
          & !str_detect(StageName, "1. Discovery")
          & !str_detect(StageName, "2. Scope & Qualify")
          & !str_detect(StageName, "3. Solution Overview")
          & !str_detect(StageName, "8. Close & Book")
          & !str_detect(StageName, "9a. Close & No Decision")
          & !str_detect(StageName, "9b. Close & No Opportunity")
          & !str_detect(StageName, "10. Close & Lost")) 

# Translating opportunityDFfiltered into a time series
opportunityTS <- opportunityDFfiltered$Name %>%
  mutate(
        Jan-20 = if( (month(opportunityDFfiltered$kickoff) <= 1) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Feb-20 = if( (month(opportunityDFfiltered$kickoff) <= 2) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Mar-20 = if( (month(opportunityDFfiltered$kickoff) <= 3) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Apr-20 = if( (month(opportunityDFfiltered$kickoff) <= 4) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        May-20 = if( (month(opportunityDFfiltered$kickoff) <= 5) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Jun-20 = if( (month(opportunityDFfiltered$kickoff) <= 6) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Jul-20 = if( (month(opportunityDFfiltered$kickoff) <= 7) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Aug-20 = if( (month(opportunityDFfiltered$kickoff) <= 8) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Sep-20 = if( (month(opportunityDFfiltered$kickoff) <= 9) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Oct-20 = if( (month(opportunityDFfiltered$kickoff) <= 10) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Nov-20 = if( (month(opportunityDFfiltered$kickoff) <= 11) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR},
        Dec-20 = if( (month(opportunityDFfiltered$kickoff) <= 12) & (month(opportunityDFfiltered$ILPend) > 1) ) {licenseRR}
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...