C: birden fazla sınırlayıcıyla strsplit() nasıl kullanılır?


Bir dizeyi birden çok sınırlayıcıya dayalı olarak parçalara bölmek için R’deki strsplit() işleviyle aşağıdaki temel sözdizimini kullanabilirsiniz:

 strsplit(my_string, ' [,& ]+ ')

Bu özel örnek, aşağıdaki üç sınırlayıcıdan biriyle karşılaştığında my_string adlı dizeyi böler:

  • Virgül ( , )
  • Bir ve işareti ( & )
  • Bir alan

Parantez içindeki karakterlerin hangi sınırlayıcıların aranacağını gösterdiğini ve + işaretinin bir satırda birden fazla sınırlayıcı olabileceğini (örneğin, bir satırda birden çok boşluk olabileceğini) gösterdiğini unutmayın.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: R’de birden fazla sınırlayıcıyla strsplit() işlevini kullanın

Diyelim ki R’de aşağıdaki dizgemiz var:

 #create string
my_string <- 'this is a, string & with seven words'

Her boşlukla karşılaşıldığında dizeyi bölmek için strsplit() işlevini kullanırsak, aşağıdaki sonucu üretecektir:

 #split string based on spaces
strsplit(my_string, ' ')

[[1]]
 [1] "this" "is" "a," "string" "&" "with" "" ""      
 [9] “seven” “words”

strsplit() işlevi, bir boşlukla karşılaşıldığında dizeyi böler, ancak virgülleri, ve işaretlerini ve birden fazla boşluğu işleyemez.

Dizeyi bu sınırlayıcıların her birine göre bölmek için aşağıdaki sözdizimini kullanabiliriz:

 #split string based on multiple delimiters
strsplit(my_string, ' [,& ]+ ')

[[1]]
[1] "this" "is" "a" "string" "with" "seven" "words" 

Bu işlev, dizeyi üç farklı sınırlayıcıya göre bölebilir ve yalnızca ilgilendiğimiz dizedeki kelimeleri doğru şekilde döndürür.

Bu örnekte strsplit() işlevine üç parantezli sınırlayıcı eklediğimizi ancak istediğiniz kadar sınırlayıcı belirtebileceğinizi unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde dplyr kullanılarak diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Dize öğelerini bölmek için R’de strsplit() işlevi nasıl kullanılır?
Bir dize nasıl bölünür ve R’deki ilk öğe nasıl alınır?
R’de bir dizedeki kelimeler nasıl sayılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir