Utiliser R pour se connecter à une liste sharepoint

quelqu'un a-t-il pu importer une liste de SharePoint dans R en tant que dataframe?

j'ai deux sources de données distinctes, l'une à partir d'une liste SharePoint et l'autre à partir d'une base que je souhaite exécuter une analyse. Je suis capable de me connecter à la base de données sans aucun problème mais ne semble pas trouver quoi que ce soit à se connecter à une liste de SharePoint.

Le serveur SharePoint 2007

10
demandé sur zx8754 2015-03-01 13:04:09

2 réponses

J'ai travaillé sur la lecture des listes SharePoint 2010 en utilisant R depuis un petit moment maintenant. En gros, J'utilise le service Web SharePoint pour retourner les résultats de la liste, puis j'utilise xmlToDataFrame pour passer à une dataframe.

URL <- "http://yoursharepointserver/_vti_bin/ListData.svc/yourlist"    
data = xmlParse(readLines(URL))

## get the individual list items    
items = getNodeSet(data, "//m:properties")

## convert to a data frame
df = xmlToDataFrame(items, stringsAsFactors = FALSE)

depuis que j'utilise le service web, Je peux filtrer la liste avant de retourner les résultats, ce qui est vraiment utile pour surmonter les limites du service Web SharePoint. Le lien suivant est assez utile... http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/01/21/introduction-to-querying-lists-with-rest-and-listdata-svc-in-sharepoint-2010.aspx

11
répondu Lee Mendoza 2015-03-17 23:21:26

la réponse de Lee Mendoza pourrait bien fonctionner si ListData.svc est en cours d'exécution et/ou vous avez un accès administratif au serveur SharePoint.

Si les deux ne sont pas vrai: on peut travailler. Du moins pour SharePoint 2010. S'il y a un meilleur moyen de le faire quand ListData.svc n'est pas présent, j'aimerais l'entendre.

 library(RCurl)
 library(XML)
 library(data.table)
 URL <- "http://<site>/_vti_bin/owssvr.dll?Cmd=Display&Query=*&XMLDATA=TRUE&List={GUID_OF_LIST}"
 rawData <- getURL(URL, userpwd = "username:password")
 # in real life  prompt for user credentials, don't put in script
 xmlData <- xmlParse (rawData, options=HUGE, useInternalNodes=TRUE)
 dataList <- xmlToList(xmlRoot(xmlData)[["data"]])
 # check the system return, on my SP2010 server the data block is 
 # named rs:data so this works
 dataMatrix <- do.call(rbind,dataList)
 finalDataTable <- data.table(dataMatrix)
3
répondu David Wagle 2015-06-18 19:20:33