C: dizenin birden fazla alt dize içerip içermediğini kontrol edin
Bir dizenin birden fazla alt dize içerip içermediğini kontrol etmek için R’de aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Dizenin birkaç alt dizeden birini içerip içermediğini kontrol edin
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )
Bu özel sözdizimi, takım sütunundaki her dizenin, find_strings adı verilen dize vektöründe belirtilen dizelerden birini içerip içermediğini kontrol eder.
Yöntem 2: Dizenin birden fazla alt dize içerip içermediğini kontrol edin
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )
Bu özel sözdizimi, takım sütunundaki her dizenin, find_strings adı verilen dize vektöründe belirtilen tüm dizeleri içerip içermediğini kontrol eder.
Aşağıdaki örnekler, R’deki aşağıdaki veri çerçevesiyle her yöntemin pratikte nasıl kullanılacağını gösterir:
#create data frame
df = data. frame (team=c('Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'),
points=c(93, 99, 105, 110, 85, 88))
#view data frame
df
team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88
Örnek 1: Dizenin birkaç alt dizeden birini içerip içermediğini kontrol edin
Ekip sütunundaki her dizenin “İyi” veya “Is” alt dizesini içerip içermediğini kontrol etmek için aşağıdaki sözdizimini kullanabiliriz:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings, grepl, df$team), 1 , any )
#view updated data frame
df
team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE
Yeni good_or_east sütunu aşağıdaki değerleri döndürür:
- Takımda “İyi” veya “Evet” varsa DOĞRU
- Takımda ne “İyi” ne de “Doğu” yer alıyorsa YANLIŞ
Örnek 2 : Dizenin birden fazla alt dize içerip içermediğini kontrol edin
Takım sütunundaki her dizenin “İyi” ve “Is” alt dizesini içerip içermediğini kontrol etmek için aşağıdaki sözdizimini kullanabiliriz:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings, grepl, df$team), 1 , all )
#view updated data frame
df
team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE
Yeni good_and_east sütunu aşağıdaki değerleri döndürür:
- Takımda “İyi” ve “Olur” ifadeleri varsa DOĞRU
- Eğer takımda “İyi” ve “Oldu” ifadesi yoksa YANLIŞ
“İyi” alt dizesini ve “Doğu” alt dizesini içeren yalnızca bir takım adı olduğundan yalnızca bir DOĞRU değerinin döndürüldüğünü unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
C: Karakterin bir dizede olup olmadığı nasıl kontrol edilir?
C: Dizelerdeki boşluklar nasıl kaldırılır
C: Belirli karakterler arasında bir dize nasıl çıkarılır?