Il y a une liste que je voudrais sortir dans un fichier Excel comme une seule chaîne. Je commence par une liste de personnages.
url="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=21558518&retmode=xml"
xml = xmlTreeParse(url,useInternal = T)
ns <- getNodeSet(xml, '//PublicationTypeList/PublicationType')
types <- sapply(ns, function(x) { xmlValue(x) } )
types
La sortie est la suivante:
[1] "Journal Article" "Multicenter Study" "Research Support, N.I.H., Extramural"
[4] "Research Support, Non-U.S. Gov't"
Donc, dans les types - il y a une liste de caractères Maintenant, je dois en faire une seule chaîne. C'est ce que j'ai jusqu'à présent mais ce n'est pas optimal:
types_as_string = as.character(types[[1]])
if (length(types) > 1) for (j in 2:length(types)) types_as_string = paste(types_as_string,"| ",as.character(types[[j]]),sep="")
types_as_string
[1] "Journal Article| Multicenter Study| Research Support, N.I.H., Extramural| Research Support, Non-U.S. Gov't"
Je veux donc finir avec une belle chaîne séparée par des tuyaux ou un autre séparateur. (la dernière partie du code - c'est ce que je veux bien réécrire). Les tuyaux sont importants et doivent être correctement réalisés.
Vous pouvez le faire avec la fonction paste
> paste(c('A', 'B', 'C'), collapse=', ' )
[1] "A, B, C"
Vous pouvez le faire avec str_c
une fonction
> library('stringr')
> str_c(c('A','B','C'),collapse=',')
[1] "A,B,C"