Tutorial ed esempi/R Studio

R Studio

Utilizzo di SDM da ambiente R

Attraverso l'utilizzo di R Studio è possibile richiamare le informazioni contenute in SDM e trasformarle in dataframe. Questo permette di effettuare analisi statistiche avanzate.

Di seguito sarà possibile analizzare un esempio applicativo, in cui verranno utilizzate 3 funzioni derivanti da SDM. Più precisamente si parlerà di GetAllActiveUserInfo, GetWalletBalanceByUser, GetSubscriptionLevel.

Una volta richiamate le librerie necessarie, ovvero xml2, RCurl e XML si configurerà la chiamata alle funzioni sopraelecate:


# Selezionare la GetAllActiveUserInfo headerfields = c(
  Accept = "text/xml",
  Accept = "multipart/*",
  'Content-Type' = "text/xml; charset=utf-8",
  SOAPAction = "http://tempuri.org/IUsers/GetAllActiveUserInfo"
) # Assegnare alla voce body la stringa di testo corrispondente 
# alla GetAllActiveUserInfo body = '<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <GetAllActiveUserInfo xmlns="http://tempuri.org/"/>
      </soap:Body>
    </soap:Envelope>' reader = basicTextGatherer() # Utilizzo di curlPerform help("curlPerform") curlPerform(
  url = "http://sdm.myinstance.lan/Users.svc",
  httpheader = headerfields,
  postfields = body,
  writefunction = reader$update
) # Estrapolazione delle informazioni e creazione del dataset xml <- reader$value() x<- read_xml(xml) data <- xmlParse(x)
data # Creazione di una lista xml_data <- xmlToList(data)
xml_data # Assegnazione ad un oggetto dello Info degli Active Users new <- xml_data$Body$GetAllActiveUserInfoResponse$GetAllActiveUserInfoResult # Prove di conversione in dataframe pr <- as.data.frame(new[1]) pr2 <- as.data.frame(new[2]) pr_f<-rbind(pr,pr2) # Utilizzo di un ciclo per la creazione del primo dataframe for ( i in 3:length(new)){
  prova <- as.data.frame(new[i])
  pr_f<-rbind(pr_f,prova)
} View(pr_f)

Questo codice d'esempio darà come output un dataframe all'interno del quale saranno contenute informazioni degli utenti compreso il loro guid, dato univoco per ogni utente che verrà successivamente preso in considerazione come dato chiave. 

La stessa configurazione verrà utilizzata anche per richiamare le funzioni relative al wallet e alle subscriptions, dalle quali si estrapoleranno altri due dataframe che uniti al primo genereranno un dataframe finale contene info relative all'utente, come il guid e l'Id, alla gestione del wallet e al tipo di sottoscrizione che utilizza.

Essendo R un linguaggio predisposto all'analisi statistica, sul dataframe estrapolato come output finale, noto come pr_f4, si applicherà una regressione lineare utile per avere delle analitycs concrete relative all'andamento degli utenti.  


pr_f4$UserInfo.AllowPrivacyPolicy<-as.factor(pr_f4$UserInfo.AllowPrivacyPolicy) pr_f4$UserInfo.IsAdminAccess<-as.factor(pr_f4$UserInfo.IsAdminAccess) str(pr_f4) linear1 <- lm(pr_f4$User.Balance~pr_f4$UserInfo.AllowPrivacyPolicy+pr_f4$UserInfo.IsAdminAccess+pr_f4$costo
   +pr_f4$fee+pr_f4$costo_mensile) linear1 plot(linear1)

I plot che seguono mostrano una rappresentazione grafica della regressione lineare precedentemente eseguita attraverso R studio.

An error has occurred. This application may no longer respond until reloaded. Reload 🗙