Я новичок в 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}
)