Projekt R

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.