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?