Menu
CoddyTech

Bölme ve Birleştirme

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 3 / 64.

strsplit(x, split) bir dizgeyi her ayırıcıda böler. Her girdi dizgesi için bir karakter vektörü içeren bir liste döndürür; bu nedenle tek bir dizgenin parçalarını almak için [[1]] kullanın.

csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))

Çıktı:

[1] "red"   "green" "blue" 
[1] 3

paste() ters yönde çalışır. collapse ile bir vektörün elemanlarını, aralarına collapse metnini koyarak tek bir dizgede birleştirir. sep ise bağımsız değişkenlerin arasına, eleman eleman yerleştirilir.

words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))

Çıktı:

[1] "one-two-three"
[1] "one_1"   "two_2"   "three_3"

Girdiden gelen metinlerde ayırıcıların çevresinde genellikle boşluklar bulunur. trimws() her öğenin başındaki ve sonundaki boşlukları kaldırır:

raw <- "  apples , pears,plums  "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))

Çıktı:

[1] "apples" "pears"  "plums" 
[1] "plums | pears | apples"

Bir vektörde strsplit(), her dize için bir liste öğesi döndürür; böylece her girdi satırı kendi parçalarını korur:

lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])

Çıktı:

[1] 2
[1] "c" "d" "e"
challenge icon

Görev

Kolay

hashtags(line) işlevini tamamla. Satır, etiketleri virgüllerle ayrılmış ve etraflarında boşluklar olabilecek şekilde içerir. Her etiketin başına # eklenmiş ve etiketler tek boşluklarla ayrılmış tek bir dize döndür: r, data ,stats, #r #data #stats olur.

Sağlanan kod satırı okur ve döndürülen değeri yazdırır.

Kendin dene

hashtags <- function(line) {
  # Kodunuzu buraya yazın
  line
}

# Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[1]), sep = "\n")
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi