J'ai besoin d'une liste des ID de sujet uniques (la partie avant _ et après /) du contenu d'un dossier ci-dessous.Extraction d'éléments partiels uniques à partir du vecteur
[1] "." "./4101_0" "./4101_0/4101 Baseline"
[4] "./4101_1" "./4101_2" "./4101_2_2"
[7] "./4101_3" "./4101_4" "./4101_5"
[10] "./4101_6"
En ce moment je le fais (en utilisant les paquets stringr et foreach).
# Create list of contents
Folder.list <- list.dirs()
# Split entries by the "/"
SubIDs <- str_split(Folder.list, "/")
# For each entry in the list, retrieve the second element
SubIDs <- unlist(foreach(i=1:length(SubIDs)) %do% SubIDs[[i]][2])
# Split entries by the "_"
SubIDs <- str_split(SubIDs, "_")
# Take the second element after splitting, unlist it, find the unique entries, remove the NA and coerce to numeric
SubIDs <- as.numeric(na.omit(unique(unlist(foreach(i=1:length(SubIDs)) %do% SubIDs[[i]][1]))))
Cela fait le travail mais semble inutilement horrible. Qu'est-ce qui est plus propre pour aller du point A au point B?
@Krysta: notez cependant que si le motif n'est pas trouvé pour un élément particulier, la chaîne d'origine de cet élément est retournée non modifiée (comme pour '.'). – jbaums