StringR – działanie na ciągach znaków
Tym razem pokażemy Wam kilka pomocnych funkcji z biblioteki stringr działających na ciągach znaków. Załadujmy najpierw bibliotekę:
library(stringr)
Utwórzmy przykładowy wektor zawierający nazwy firm:
n = c("ibm","asus","acer","microsoft","lenovo","msi","dell")
Pierwsza funkcja str_detect pozwoli nam sprawdzić, czy w danym elemencie wektora występuje określona fraza/litera:
str_detect(n,"a")
[1] FALSE TRUE TRUE FALSE FALSE FALSE FALSE
Str_which natomiast zwróci nam indeks elementów zawierających tę frazę:
str_which(n,"a")
[1] 2 3
Gdy chcemy policzyć ile razy dana fraza występuje w elementach używamy str_count:
str_count(n,"l")
[1] 0 0 0 0 1 0 2
Fragmenty tekstu możemy wydzielić z użyciem str_sub:
str_sub(n,start = 1,end = 2)
[1] "ib" "as" "ac" "mi" "le" "ms" "de"
Elementy zawierające daną frazę wybierzemy za pomocą str_subset:
str_subset(n,"a")
[1] "asus" "acer"
A długość każdego z elementów wyciągniemy str_length:
str_length(n)
[1] 3 4 4 9 6 3 4
Niepotrzebne spacje na początku i końcu ciągu znaków usuniemy korzystając z str_trim:
str_trim(" dell ")
[1] "dell"
Frazy w elementach zamienimy na inne dzięki str_replace:
str_replace(n,"a","A")
[1] "ibm" "Asus" "Acer" "microsoft" "lenovo" "msi" "dell"
Ciągi znaków przekonwertujemy na same wielkie litery str_to_upper:
str_to_upper(n)
[1] "IBM" "ASUS" "ACER" "MICROSOFT" "LENOVO" "MSI" "DELL"
Natomiast jak w zdaniu zrobimy to str_title:
str_to_title(n)
[1] "Ibm" "Asus" "Acer" "Microsoft" "Lenovo" "Msi" "Dell"
Dwa stringi połączymy korzystając z str_c:
str_c(n,str_to_upper(n))
[1] "ibmIBM" "asusASUS" "acerACER" "microsoftMICROSOFT" "lenovoLENOVO" "msiMSI" "dellDELL"
Wektor z stringami zamienimy w pojedynczy ciąg znaków za pomocą:
str_c(n,collapse = ';')
[1] "ibm;asus;acer;microsoft;lenovo;msi;dell"
Stringi posortujemy korzystając z str_sort:
str_sort(n)
[1] "acer" "asus" "dell" "ibm" "lenovo" "microsoft" "msi"
Więcej funkcji znajdziecie oczywiście w dokumentacji. Do czego bardzo zachęcamy.