Je suis confronté à ce problème dans R dans lequel je veux diviser les chaînes sur virgule, puis diviser davantage sur le point-virgule, mais ne conserver que le premier point avant le point-virgule, c'est-à-dire ee et jj ci-dessous. J'ai essayé beaucoup de choses mais les listes imbriquées semblent trop alambiquées!R strsplit, listes imbriquées blues
est ici ce que je fais:
d <- c("aa,bb,cc,dd,ee;e,ff",
"gg,hh,ii,jj;j")
e=strsplit(d,",")
myfun2 <- function(x,arg1) {
strsplit(x,";")
}
f=lapply(e,myfun2)
f=
[[1]]
[[1]][[1]]
[1] "aa"
[[1]][[2]]
[1] "bb"
[[1]][[3]]
[1] "cc"
[[1]][[4]]
[1] "dd"
[[1]][[5]]
[1] "ee" "e"
[[1]][[6]]
[1] "ff"
[[2]]
[[2]][[1]]
[1] "gg"
[[2]][[2]]
[1] "hh"
[[2]][[3]]
[1] "ii"
[[2]][[4]]
[1] "jj" "j"
est ici la sortie que je veux
Correct output=
[[1]]
[1] "aa" "bb" "cc" "dd" "ee" "ff"
[[2]]
[1] "gg" "hh" "ii" "jj"
J'ai essayé un tas de choses en utilisant lapply à la liste imbriquée « f » et utilisé « [ ["et" ["mais sans succès.
Toute aide est grandement appréciée. (Je sais que je manque quelque chose de stupide, mais je ne peux pas comprendre en ce moment!)
Parfait! C'était juste ce que je voulais. N'a jamais utilisé mapply! –