R'de belirli karakterler arasında bir dize nasıl çıkarılır


R’de belirli karakterler arasında bir dize çıkarmak için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Base R’yi kullanarak belirli karakterler arasındaki dizeyi çıkarın

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

Yöntem 2: Stringr kullanarak belirli karakterler arasındaki dizeyi çıkarın

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

Bu iki örnek, char1 ve char2 arasındaki dizeyi my_string içine çıkarır.

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki veri çerçevesiyle nasıl kullanılacağını gösterir:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

Örnek 1: Base R’yi kullanarak belirli karakterler arasında bir dize çıkarma

Aşağıdaki kod, veri çerçevesinin ekip sütunundaki her satır için ekip ve pro karakterleri arasındaki dizenin nasıl çıkarılacağını gösterir:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Takım_adı adı verilen yeni sütunun, veri çerçevesinin takım sütunundaki her satır için takım ve pro karakterleri arasındaki dizeyi içerdiğini unutmayın.

İlgili : R’de gsub()’a giriş

Örnek 2: stringr paketini kullanarak belirli karakterler arasındaki bir dizeyi çıkarın

Aşağıdaki kod, R’deki stringr paketinin str_match() işlevini kullanarak veri çerçevesinin takım sütunundaki her satır için takım ve pro karakterleri arasındaki dizenin nasıl çıkarılacağını gösterir:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Takım_adı adı verilen yeni sütunun, veri çerçevesinin takım sütunundaki her satır için takım ve pro karakterleri arasındaki dizeyi içerdiğini unutmayın.

Bu, R tabanındaki gsub() işlevinin kullanılmasının sonuçlarına karşılık gelir.

str_match() fonksiyonunun, ilk sütununun orijinal dizeleri içerdiği ve ikinci sütununun ilgilenilen alt dizeyi içerdiği bir matris döndürdüğünü unutmayın.

Bu nedenle, str_match() işlevi tarafından döndürülen matristen yalnızca ikinci sütunu çıkarmak için [,2] kullanmalıyız.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de belirli bir dize içeren sütunlar nasıl seçilir
R’de bir dizeden karakterler nasıl kaldırılır
R’de bir dizedeki karakter konumu nasıl bulunur?

Yorum ekle

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