Vektör Aritmetiği ve Geri Dönüşüm
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası. Ders 69 / 78.
Aynı uzunluktaki iki vektör arasında aritmetik işlemler gerçekleştirdiğinizde, R işlemi eleman bazında uygular:
a <- c(1, 2, 3)
b <- c(10, 20, 30)
print(a + b)Çıktı:
[1] 11 22 33Peki vektörlerin uzunlukları farklı olduğunda ne olur? R, geri dönüşüm adı verilen bir davranış kullanır. Daha kısa olan vektör, uzun olanın uzunluğuna uyacak şekilde tekrarlanır:
numbers <- c(1, 2, 3, 4, 5, 6)
multiplier <- c(10, 100)
print(numbers * multiplier)Çıktı:
[1] 10 200 30 400 50 600Burada, multiplier çarpma işleminden önce c(10, 100, 10, 100, 10, 100) haline gelecek şekilde geri dönüştürüldü. Bu, özellikle tek bir değerle işlem yaparken kullanışlıdır:
prices <- c(10, 20, 30)
print(prices * 1.1)Çıktı:
[1] 11 22 33Tekil 1.1 değeri, prices uzunluğuna uyacak şekilde geri dönüştürülür. Uzun vektörün uzunluğu kısa olanın tam katı olmadığında dikkatli olun; R işlemi yine de gerçekleştirecektir ancak kısmi geri dönüşüm hakkında bir uyarı verebilir.
Görev
Kolayİki satır girdi alacaksınız:
- Temel değerleri temsil eden, virgülle ayrılmış sayılar listesi (ör.
10,20,30,40,50,60) - Virgülle ayrılmış çarpanlar listesi (ör.
2,5)
Vektör aritmetiği ve geri dönüşüm kullanarak:
- Temel değerlerden bir sayısal vektör oluşturun
- Çarpanlardan bir sayısal vektör oluşturun
- Temel değerleri çarpanlarla çarpın (R daha kısa olan vektörü yeniden kullanır)
- Çarpma işleminin sonucunu yazdırın
- Özgün temel değerlerin her bir elemanına
100ekleyin (tek değerli geri dönüşüm) - Toplama işleminin sonucunu yazdırın
- Çarpanlar vektörünü temel değerler vektöründen çıkarın
- Çıkarma işleminin sonucunu yazdırın
Örneğin girdiler şunlarsa:
5,10,15,20,25,30
3,7Çıktı şu şekilde olmalıdır:
[1] 15 70 45 140 75 210
[1] 105 110 115 120 125 130
[1] 2 3 12 13 22 23Açıklama:
- Çarpma:
c(3, 7)çarpanlarıc(3, 7, 3, 7, 3, 7)olacak şekilde yeniden kullanılır ve bunun sonucunda5*3, 10*7, 15*3, 20*7, 25*3, 30*7elde edilir - Toplama: Tek değer olan
100, her elemana eklenmek üzere yeniden kullanılır - Çıkarma: Çarpanlar yeniden kullanılır ve bunun sonucunda
5-3, 10-7, 15-3, 20-7, 25-3, 30-7elde edilir
Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
base_input <- suppressWarnings(readLines(con, n = 1))
multipliers_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Virgülle ayrılmış değerleri sayısal vektörlere dönüştür
base_values <- as.numeric(strsplit(base_input, ",")[[1]])
multipliers <- as.numeric(strsplit(multipliers_input, ",")[[1]])
# TODO: Kodunuzu aşağıya yazın
# 1. base_values değerlerini multipliers ile çarpın (geri dönüşüm otomatik olarak gerçekleşecektir)
# 2. Çarpma sonucunu yazdırın
# 3. base_values'un her bir öğesine 100 ekleyin
# 4. Toplama sonucunu yazdırın
# 5. base_values'tan multipliers değerlerini çıkarın
# 6. Çıkarma sonucunu yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu13İleri Seviye Vektörler
Vektör Dilimleme ve İndekslemeMantıksal İndekslemeVektör Aritmetiği ve Geri Dönüşüm%in% Operatörü2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre DeğerleriKendi başına pratik yap: Online R derleyicisi