Menu
Coddy logo textTech

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 33

Peki 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 600

Burada, 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 33

Tekil 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.

challenge icon

Görev

Kolay

İki satır girdi alacaksınız:

  1. Temel değerleri temsil eden, virgülle ayrılmış sayılar listesi (ör. 10,20,30,40,50,60)
  2. Virgülle ayrılmış çarpanlar listesi (ör. 2,5)

Vektör aritmetiği ve geri dönüşüm kullanarak:

  1. Temel değerlerden bir sayısal vektör oluşturun
  2. Çarpanlardan bir sayısal vektör oluşturun
  3. Temel değerleri çarpanlarla çarpın (R daha kısa olan vektörü yeniden kullanır)
  4. Çarpma işleminin sonucunu yazdırın
  5. Özgün temel değerlerin her bir elemanına 100 ekleyin (tek değerli geri dönüşüm)
  6. Toplama işleminin sonucunu yazdırın
  7. Çarpanlar vektörünü temel değerler vektöründen çıkarın
  8. Çı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 23

Açıklama:

  • Çarpma: c(3, 7) çarpanları c(3, 7, 3, 7, 3, 7) olacak şekilde yeniden kullanılır ve bunun sonucunda 5*3, 10*7, 15*3, 20*7, 25*3, 30*7 elde 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-7 elde 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ın
quiz iconKendini test et

Bu 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

Kendi başına pratik yap: Online R derleyicisi