Uygulamada veriler farklı sunucularda barındırılır ve birçok farklı dosyada bulunur. İhtiyacınız olan veriler birden fazla kaynaktan geldiğinde, mümkün olduğunca az bilgi kaybedecek ve verinizin yapısı göz önüne alındığında gerçekten anlamlı eşleştirmeler yapacak şekilde bunları nasıl bir araya getireceğinizi bilmek çok önemlidir.
Bu eğitimde şunları adım adım göreceksiniz:
Veri kümelerini yatay ve dikey olarak birleştirme
Birincil anahtarların ne olduğu ve verilerinize nasıl yapı kazandırdığı
Farklı join türleri (ör. left-join, inner-join, full-join) ve aralarından nasıl seçim yapılacağı
Dikkat edilmesi gereken yaygın bir sorun ve bunun nasıl çözüleceği
Veri Kümelerini Birleştirme (Concatenate)
Genel düzeyde, veri kümelerini birleştirmenin iki yolu vardır; veri kümenize daha fazla satır ekleyerek ya da daha fazla sütun ekleyerek bilgi katabilirsiniz. Genel olarak, aynı sütun setine sahip veri kümeleriniz veya aynı gözlem setine sahip veri kümeleriniz olduğunda, bunları sırasıyla dikey veya yatay olarak birleştirebilirsiniz. Örneklerle öğrenelim.
Veri kümelerini dikey olarak ekleme
Aynı sütun setine sahip birden fazla veri kümeniz olduğunda, bir veri kümesini diğerine dikey olarak ekleyebilirsiniz. Yani, veri kümenizin sütunlarını koruyarak ona daha fazla satır ekleyebilirsiniz. Bu tür bilgilerin tek bir dosyada bulunması, birden fazla dosya arasında gidip gelme zahmeti ve takibi kaybetme riski olmadan bilgileri bir araya getirmenizi ve büyük resmi görmenizi kolaylaştırır.
Veri kümesi 1
Marka
Model sayısı
Honda
63
BMW
10
Veri kümesi 2
Marka
Model sayısı
Ford
26
Tesla
4
Şuna dikkat etmek önemlidir: Birden fazla veri kümesinde aynı gözlem varsa ve bunları rbind() kullanarak dikey olarak birleştirirseniz, tablonuzda yinelenen gözlemlerle karşılaşırsınız. Ayrıca iki veri kümesi aynı değişken setine (yani sütunlara) sahip olmak zorunda olsa da, aynı sırada olmak zorunda değildir. Aşağıdaki konsolda kendiniz görün!
Çalışma alanınızda yukarıda gördüğünüz dataset1 ve dataset2 adlı iki veri kümesi bulunmaktadır. dataset1’in sütunlarının sırasını değiştirmeyi deneyin. dataset1 ve dataset2’nin yanı sıra reordered_dataset1 ve dataset2 üzerinde rbind() çağrısı yapın.
Aynı gözlem setini temsil eden veri kümeleriniz olduğunda, bu veri kümelerini yatay olarak birleştirebilirsiniz. Bu kez, veri kümenizin satırlarını koruyarak ona daha fazla sütun ekleyebilirsiniz. Bu tür durumlarda, gözlemlerin sırasının aynı olup olmadığını kontrol etmelisiniz. Veri kümelerinizin satır sayıları farklıysa ya da satır sayıları aynı olsa bile sıraları tutarsızsa, bir sütun setini diğer setle mantıksız bir şekilde eşleştirebilirsiniz.
Yukarıdaki örneği biraz genişletelim. Diyelim ki iki veri dosyanız var; biri otomobil markasını ve sunulan benzersiz model sayısını, diğeri ise otomobil markasını ve toplam satışları içeriyor:
Sunulan benzersiz model sayısı
Marka
Model sayısı
Honda
63
BMW
10
Ford
26
Tesla
4
Toplam satış
Marka
Satış
Ford
119157
BMW
25908
Honda
188328
Tesla
29975
Şuna dikkat etmek önemlidir: Birden fazla veri kümesinde aynı gözlem varsa ve bunları cbind() kullanarak yatay olarak birleştirirseniz, tablonuzda gereksiz (mükerrer) sütunlar oluşur. Ayrıca iki veri kümesi ilişkili bilgiler içerse de, satırların sırası önemlidir!
Aşağıdaki konsolda, models ve sales üzerinde cbind() çağrısı yapın ve sonucu yazdırın:
Buradaki sorunu görüyor musunuz? Bu veriler düzenli (tidy) değil!
bu temel kursta öğretilen düzenli veri ilkelerine göre, bir veri kümesindeki her gözlem benzersiz bir satırda temsil edilmelidir. Peki ya bir veri kümesinde yalnızca bazı satırlara ilişkin bilginiz varsa ve yalnızca onlar için bilgi eklemek istiyorsanız? Başka bir deyişle, bir veri kümesinden diğerine daha fazla sütun eklemek istiyorsunuz ama bu veri kümelerinin gözlem sayıları aynı değilse ne olur?
Birincil Anahtar ve Yabancı Anahtarlar
Veri kümelerini birleştirmeye çalışırken ilk adım, veri kümenizin birincil anahtarını aramaktır. Birincil anahtar, veri kümenizdeki her gözlemi benzersiz olarak tanımlayan sütun veya sütunlar grubudur. Otomobil markaları, sunulan benzersiz model sayısı ve toplam satışlar örneğinde, veri kümelerinizin birincil anahtarı make sütunudur.
Artık veri kümelerini tek bir tabloda birleştirmenin standart yolu olan join işlemlerini gerçekleştirebiliriz.
Join Türleri
Birçok join türü vardır. Bir veri kümesindeki sütunları diğerinden gelen sütunlarla nasıl zenginleştireceğinizi mutating join'lerle, bir veri kümesini diğerine göre nasıl filtreleyeceğinizi filtering join'lerle ve veri kümeleri üzerinde nasıl küme işlemleri yapacağınızı dplyr ile R'de Verileri Birleştirme kursunda öğrenebilirsiniz. Aşağıda en yaygın olanlardan bazıları yer alıyor.
left_join(x, y): x’teki tüm satırları ve x ile y’nin tüm sütunlarını döndürür. y’de eşi olmayan x satırları, yeni sütunlarda NA değerleri alır. x ile y arasında birden fazla eşleşme varsa, eşleşmelerin tüm kombinasyonları döndürülür.
inner_join(x, y): y’de eşleşen değerlerin bulunduğu x’teki tüm satırları ve x ile y’nin tüm sütunlarını döndürür. x ile y arasında birden fazla eşleşme varsa, eşleşmelerin tüm kombinasyonları döndürülür.
full_join(x, y): Hem x hem de y’den tüm satırları ve tüm sütunları döndürür. Eşleşen değerlerin olmadığı yerlerde, eksik olan için NA döndürülür.
Yukarıda bahsedilen join'ler, iki veri kümesinden değişkenleri birleştirdikleri için mutating join örnekleridir.
Eksik Anahtarlar
Diyelim ki iki veri kümeniz var. İlk veri kümesi size olarak adlandırılır ve kişilerin adlarını ve gömlek bedenlerini içerir:
> size
name size
1 Tom M
2 Dan XL
3 Keil S
İkinci veri kümesi color olarak adlandırılır ve kişilerin soyadlarını, gömlek rengi tercihlerini içerir ve bazı bilgileri row.names özniteliğinde saklar:
> color
surname color
Tom Jeon <NA>
Dan Smith Dark
Bob McLadden Light
Burada neyin ters gidebileceğini fark ettiniz mi? İki tabloyu birleştirmek, anahtarlar eksik olduğunda veya yinelenen anahtarlar bulunduğunda karmaşık hale gelebilir. Bu örnekte, R'nin data frame yapıları önemli bilgileri row.names özniteliğinde saklıyor. Bu durumda, join fonksiyonları yalnızca data frame'in sütunlarına erişebildiğinden, anahtara bir join fonksiyonuyla erişemezsiniz.
Bu sorunu kolayca çözmenin püf noktası, tibble paketindeki rownames_to_column() fonksiyonunu kullanmaktır. Bu fonksiyon, satır adlarının veri içine bir sütun olarak eklendiği veri kümenizin bir kopyasını döndürür. rownames_to_column() fonksiyonunun ilk argümanı data frame nesneniz, ikinci argümanı ise eklemek istediğiniz sütunun adını belirten bir karakter dizisidir.
Aşağıdaki konsolda keşfetmeyi deneyin. size ve color veri kümeleri çalışma alanınıza önceden yüklenmiştir.
Gerçek dünyada veriler, birçok veri kümesine ve çok sayıda farklı formata bölünmüş halde gelebilir. R, tekil veri tablolarıyla çalışacak şekilde tasarlandığından, veri kümelerini tek bir tabloda dönüştürmek ve birleştirmek temel bir beceridir. R ile Veri İçe Aktarma & Temizleme yetenek yolunu tamamlayarak verileri her formatta ayrıştırmayı ve birleştirmeyi öğrenin. DataCamp'in R Veri İçe Aktarma eğitimine göz atın. İyi öğrenmeler!
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!