0Pricing
R Academy · Ders

Adlandırılmış Vektörler ve Diziler

Okunabilir kod için vektörlere ad atayın ve bu adlara erişin.

Adlandırılmış Vektörler ve Diziler, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.

Adlandırılmış Vektörlere Giriş

Adlandırılmış vektör, her öğesiyle ilişkilendirilmiş bir ada (character etiketine) sahip vektördür. Adlar kodu daha okunabilir hâle getirir ve öğelere konum indisi yerine adlarıyla erişmenizi sağlar.

# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)

cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)

c() ile Adlandırılmış Vektörler Oluşturma

Adlandırılmış bir vektör oluşturmanın en basit yolu, c() içinde name = value çiftlerini kullanmaktır. Adlar geçerli herhangi bir dize olabilir; boşluk veya özel karakter içeriyorlarsa adları ters tırnak veya tırnak işaretleri içine alın.

# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
         Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')

names() İşlevi

names(x), bir vektörün adlarını character vektörü olarak alır. Adları oluşturma işleminden sonra names(x) <- c(...) kullanarak da atayabilirsiniz; bu işlem vektörü yerinde değiştirir.

# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')

names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)

# Retrieve names
cat('Days:', names(temps), '
')

Öğelere Ada Göre Erişme

Adlandırılmış vektör öğelerine x["name"] veya x[["name"]] kullanarak erişin. Tek köşeli parantez [] adlandırılmış bir alt küme döndürür; [[]] ise adı olmadan yalnızca değeri döndürür.

scores <- c(Math = 88, Science = 92, English = 75, History = 81)

# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])

# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')

# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])

İşlevsel Stil İçin setNames()

setNames(x, nm), özgününü değiştirmeden, adları nm olarak ayarlanmış bir x kopyası döndürür. Bu, bir vektörü işlem zincirinin parçası olarak adlandırmak istediğiniz işlem hatlarında kullanışlıdır.

# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))

cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)

# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')

Adları Değiştirme

names(x) içinde indis kullanarak tek tek adları değiştirebilirsiniz. Bu, vektörün tamamını yeniden oluşturmadan bir alt kümedeki öğeleri yeniden adlandırmanız gerektiğinde kullanışlıdır.

prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50)  # typo!

# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)

# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry')  # capitalise
cat('Capitalised:
')
print(prices)

seq() ve names() ile Adlandırılmış Diziler

seq() ile setNames() işlevlerini birleştirerek adlandırılmış bir dizi oluşturabilirsiniz. Bu, adların sayısal değerlere bağlam kattığı aylık veya haftalık indisler için özellikle kullanışlıdır.

# Monthly average temperature with names
temps_monthly <- setNames(
  c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
  month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')

Adlandırılmış Vektörleri Filtreleme

Adlandırılmış vektörler hem mantıksal hem de character indislemeyi destekler. Öğeleri ada göre seçip aynı anda değere göre filtreleyebilirsiniz; bu da adlandırılmış vektörleri küçük arama tabloları için oldukça ifade gücü yüksek hâle getirir.

population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
                Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)

# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)

# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))

unname() ile Adları Kaldırma

unname(x), bir vektördeki tüm adları kaldırarak yalnızca değerleri döndürür. Bu, adlandırılmış vektör beklemeyen işlevlere veri aktarırken veya adlar çıktıyı görsel olarak kalabalıklaştırdığında kullanışlıdır.

named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)

unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)

# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')

Arama Tabloları Olarak Adlandırılmış Vektörler

Adlandırılmış vektörlerin en güçlü kullanımlarından biri, anahtarları değerlere eşleyen bir arama tablosu olarak kullanılmasıdır. Bir dizi if-else ifadesi yerine adlandırılmış bir vektör kullanıp bu vektörde indisleme yapabilirsiniz.

# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
                   Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
                   Nov=30, Dec=31)

# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')

Adlandırılmış Vektörler: Temel Bilgiler

R'deki adlandırılmış vektör özelliklerinin özeti:

  • c(name = value, ...) ile oluşturun veya names(x) <- c(...) ile ad atayın
  • x['name'] ile ada erişin (adı korur) veya x[['name']] ile erişin (yalnızca değeri döndürür)
  • setNames(x, nm), özgününü değiştirmeden adlandırılmış bir kopya döndürür
  • unname(x) tüm adları kaldırır
  • Adlandırılmış vektörler, zarif arama tabloları olarak çalışır (if-else zincirlerinin yerini alır)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)

# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))

Hızlı Kontrol

x['key'] ile x[['key']] arasındaki fark nedir? Burada x adlandırılmış bir vektördür.

Özet: Adlandırılmış Vektörler

Harika çalıştınız! Bu dersten çıkarılacak temel noktalar:

  • Adlandırılmış vektörler, her öğeyi bir character etiketiyle eşleştirir
  • c(name = val) söz dizimiyle oluşturun veya names(x) <- ... ile ad atayın
  • x['name'] adlandırılmış bir alt küme, x[['name']] ise yalnızca değeri döndürür
  • setNames(), ad eklemenin işlevsel (değişiklik yapmayan) yoludur
  • Ayrıntılı if-else zincirlerinin yerine arama tabloları olarak adlandırılmış vektörleri kullanın
  • Ham değerler gerektiğinde adları kaldırmak için unname() kullanın
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80

# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')

Sıkça Sorulan Sorular

“Adlandırılmış Vektörler ve Diziler” dersi ücretsiz mi?

Evet — “Adlandırılmış Vektörler ve Diziler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.

“Adlandırılmış Vektörler ve Diziler” dersinde ne öğreneceğim?

Okunabilir kod için vektörlere ad atayın ve bu adlara erişin. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

R Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Adlandırılmış Vektörler ve Diziler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu R Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Tamsayı Aralıkları için İki Nokta İşleci
  2. Özel Diziler için seq()
  3. Tekrarlanan Değerler için rep()
  4. Adlandırılmış Vektörler ve Diziler
← R Academy Sayfasına Dön