Menu
Coddy logo textTech

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 dizeyi her ayırıcıda böler. Her girdi dizesi için bir karakter vektörü içeren bir liste döndürür; bu nedenle tek bir dizenin 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() bunun tersini yapar. collapse ile bir vektörün öğelerini, aralarına collapse metnini yerleştirerek tek bir dizede birleştirir. sep, bağımsız değişkenlerin arasına, öğe öğe 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"

Girdilerden gelen metinlerde ayraçların etrafında 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; bu nedenle her giriş 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, etraflarında boşluklar olabilecek şekilde virgüllerle ayrılmış etiketleri içerir. Her etiketin başına # eklenmiş ve 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 girdi/çıktı 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