/ / Parsowanie łańcucha znaków: skąd pochodzi pusty element? - r

Parsowanie łańcucha znaków: skąd pochodzi pusty element? - r

Czy możesz mi powiedzieć, proszę, dlaczego w wektorze jest pusty element po analizie ciągu znaków?

Co wprowadzam:

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

Co dostaję:

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

I jeszcze jedno pytanie: czy można wybrać tylko te elementy z wektora, które mają w sobie "=" (jakąś określoną literę)?

Z góry dziękuję!

Odpowiedzi:

4 dla odpowiedzi № 1

Łańcuch podzielisz za pomocą "--" jako ogranicznik. Od pierwszych znaków w twoim ciągu wejściowym "--"konceptualnie najpierw masz pusty substring, potem separator, resztę łańcucha itp. Dlatego pierwszy element tablicy wyników jest pusty.


3 dla odpowiedzi № 2

Od ?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 więc pierwszy wpis ma "" po lewej i to właśnie dlatego je zbierasz. Zawsze możesz podzdzielić po podzieleniu !="".