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] 3paste() 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"Görev
Kolayhashtags(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")
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
1Dizeleri Derinlemesine
substr() ile Alt Dizelersprintf() ile BiçimlendirmeBölme ve BirleştirmeDizelerde AramaMetin DeğiştirmeTekrar - Kullanıcı Adı Oluşturucu4Matrisler
Matris OluşturmaMatrisleri İndekslemeSatır ve Sütun ÖzetleriMatris AritmetiğiTekrar - Oturma Planı2Anahtar-Değer Aramaları
Adlandırılmış Vektör AramalarıAnahtarları DenetlemeAnahtar Ekleme ve KaldırmaAdlar Üzerinde DöngüTekrar - Hisse Senedi Masası5Proje - Not Defteri
Öğrenci EklemeNotları Kaydetme3Kümeler ve Sayma
Benzersiz DeğerlerKüme İşlemleriÜyelik Testleritable() ile SaymaTekrar - Etkinlik Konukları6Değer Olarak Fonksiyonlar
Anonim FonksiyonlarFonksiyonları GeçirmeFonksiyon DöndürmeDurum Bilgili Closure'larTekrar - İndirim Kuralları9Veri Çerçeveleri
Veri Çerçeveleri OluşturmaSütunlar ve SatırlarSatırları FiltrelemeEkleme ve SıralamaTekrar - Satış Raporu12Proje - Harcama Takipçisi
Harcamaları KaydetmeToplam HarcamaKendi başına pratik yap: Online R derleyicisi