/ / Parsovanie reťazca: odkiaľ pochádza prázdny prvok? - r

Parsovanie reťazca: odkiaľ pochádza prázdny prvok? - r

Môžete mi povedať, prosím, prečo je prázdny prvok vo vektoru po analýze reťazca?

Čo zadávam:

a <- "--key1 = value1 --key2 = value2 --key3 = value3 --switch.1 --switch.2"
unlist(strsplit(a, split = "--"))

Čo získam:

[1] ""               "key1 = value1 " "key2 = value2 " "key3 = value3 "
[5] "switch.1 "      "switch.2"

A ešte jedna otázka: je možné vybrať len tie prvky z vektora, ktoré majú v nich "=" (akýkoľvek istý list)?

Vopred ďakujem!

odpovede:

4 pre odpoveď č. 1

Rozdelili ste reťazec "--" ako oddeľovač. Od prvých znakov vstupného reťazca "--", koncepčne máte prvý prázdny reťazec, potom oddeľovač, potom zvyšok reťazca atď. Preto prvý prvok v poli výsledkov je prázdny reťazec.


3 pre odpoveď č. 2

z ?strsplit

 repeat {
if the string is empty
break.
if there is a match
add the string to the left of the match to the output.
remove the match and all to the left of it.
else
add the string to the output.
break.
}

Takže prvý záznam má "" doľava a to je dôvod, prečo ju vyzdvihnete. Po rozdelení môžete vždy zostať podmnožinou !="".