Bir R mülakatında başarılı olma şansınızı artırmak için, iş arıyorsanız size sorulabilecek olası soruları ya da işe alım sorumlusu veya işe alım uzmanıysanız bir adaya sorabileceğiniz soruları önceden bilmek her zaman faydalıdır.
Bu makalede, tüm kıdem seviyeleri için 40 temel R programlama mülakat sorusu ve cevapları ile bazı genel mülakat soruları ele alınmaktadır. Kolaylık olması için tüm teknik sorular üç seviyeye ayrılmıştır: başlangıç, orta ve ileri seviye sorular.
R programlama mülakat hazırlığınız için ek kaynaklar olarak aşağıdaki yararlı blog ve kursları göz önünde bulundurun:
Bir R mülakatının başında, görüşmeyi yapan kişi adayın R ile genel deneyimine ilişkin bazı teknik olmayan, genel sorular sorabilir. Örneğin:
Ne kadar süredir R ile çalışıyorsunuz?
R ile ne tür görevler yapıyorsunuz?
R’deki yetkinlik seviyenizi nasıl değerlendiriyorsunuz?
Eğer iş arıyorsanız, bu ve benzeri sorular hakkında önceden düşünmeli ve cevaplarınızı hazırlamalısınız. Henüz R ile gerçek bir iş deneyiminiz yoksa endişelenmeyin: R programlamadaki stajınızı veya öğreniminiz sırasında tamamladığınız bireysel ya da grup R projelerini anlatmanız gayet yeterlidir.
Ayrıca, başlangıç seviyesindeki bir pozisyon için mülakata giriyorsanız, görüşmeyi yapan kişi sizden mutlaka kapsamlı (hatta herhangi bir) R iş deneyimi beklemeyebilir. Unutmayın ki bu mülakata davet edildiğinize göre, şirket özgeçmişinizi zaten ilgi çekici bulmuştur.
Başlangıç Seviyesi R Programlama Mülakat Soruları
Potansiyel işvereninizden karşılaşabileceğiniz bazı temel teknik R mülakat sorularıyla başlayalım. Bunlar, temelleri öğrenmiş olmanızı ve R’yi pratikte kullanma deneyimine sahip olmanızı gerektirir.
1. R nedir ve temel özellikleri nelerdir?
R, veri bilimi problemlerini çözmek için yaygın olarak kullanılan, özellikle istatistiksel hesaplama ve veri görselleştirme için tasarlanmış bir programlama dili ve ortamıdır. Temel özellikleri şunlardır:
Açık kaynak
Yorumlamalı (yani hem fonksiyonel hem nesne yönelimli programlamayı destekler)
Geniş veri bilimi paket koleksiyonu sayesinde son derece genişletilebilir
Fonksiyonel ve esnek (kullanıcılar kendi fonksiyonlarını tanımlayabilir ve mevcut fonksiyonların çeşitli parametrelerini ayarlayabilir)
Pek çok işletim sistemiyle uyumlu
Diğer programlama dilleri ve çerçevelerle kolayca entegre edilebilir
Güçlü istatistiksel hesaplama olanağı sunar
Yayın kalitesinde grafikler oluşturmak için çeşitli veri görselleştirme araçları sunar
Komut satırı arayüzü ile donatılmıştır
Güçlü bir çevrim içi topluluk tarafından desteklenir
2. R kullanmanın bazı dezavantajları nelerdir?
Sezgisel olmayan sözdizimi ve dolayısıyla özellikle programlamaya yeni başlayanlar için dik bir öğrenme eğrisi
Nispeten yavaş
Verimsiz bellek kullanımı
Paketlerin tutarsız ve sıklıkla zor okunur dokümantasyonu
Bazı paketlerin düşük kaliteye sahip veya zayıf şekilde bakımının yapılması
Açık kaynak doğası nedeniyle potansiyel güvenlik endişeleri
3. R’deki bazı temel veri tiplerini listeleyin ve tanımlayın.
Character—normal veya tek tırnak içine alınmış bir harf, sayı ya da sembol veya bunların herhangi bir kombinasyonu.
Factor—önceden tanımlanmış olası değerler kümesinden gelen, çoğu zaman içsel bir sıralamaya sahip kategoriler.
Logical—TRUE ve FALSE Boolean değerleri; perde arkasında sırasıyla 1 ve 0 olarak temsil edilir.
4. R’deki bazı temel veri yapılarını listeleyin ve tanımlayın.
Vector—aynı veri tipindeki değerleri saklamak için kullanılan tek boyutlu veri yapısı.
List—herhangi bir veri tipindeki ve/veya diğer veri yapılarındaki değerleri saklamak için kullanılan çok boyutlu veri yapısı.
Matrix—aynı veri tipindeki değerleri saklamak için kullanılan iki boyutlu veri yapısı.
Data frame—herhangi bir veri tipindeki değerleri saklamak için kullanılan iki boyutlu veri yapısı; ancak her sütun aynı veri tipindeki değerleri saklamalıdır.
5. R’de veri nasıl içe aktarılır?
Temel R, veri içe aktarmak için gerekli işlevleri sağlar:
read.table()—temel R’de veri içe aktarmak için en genel işlevidir, alan ayraçları herhangi bir türde olan (ör. | gibi belirli ayraçlar dahil) tablo verilerini alır.
read.csv()—ondalık ayırıcı olarak . kullanan virgülle ayrılmış değer (CSV) dosyaları.
read.csv2()—ondalık ayırıcı olarak , kullanan noktalı virgülle ayrılmış değer dosyaları.
read.delim()—ondalık ayırıcı olarak . kullanan sekmeyle ayrılmış değer (TSV) dosyaları.
read.delim2()—ondalık ayırıcı olarak , kullanan sekmeyle ayrılmış değer (TSV) dosyaları.
Uygulamada, bu işlevlerin her biri, alan ve ondalık ayraçları ne olursa olsun tablo verilerini içe aktarmak için kullanılabilir: belirtilen dosya formatları için kullanımları yalnızca bir gelenek ve varsayılan ayarlar meselesidir. Örneğin, ilk işlevin sözdizimi şöyledir: read.table(file, header = FALSE, sep = "", dec = "."). Diğer işlevler aynı parametrelere sahiptir, ancak varsayılan ayarları farklıdır ve bunlar her zaman açıkça geçersiz kılınabilir.
tidyverse paketlerindeki readr ve readxl, belirli dosya formatlarını içe aktarmak için başka işlevler sunar. Bu işlevlerin her biri, çeşitli isteğe bağlı parametreler ayarlanarak daha da ince ayar yapılabilir.
readr
read_tsv()—sekmeyle ayrılmış değer (TSV) dosyaları.
read_fwf()—sabit genişlikli dosyalar.
read_log()—web günlük dosyaları.
read_table(), read_csv(), read_csv2() ve read_delim()—temel R işlevlerinin karşılıkları.
6. R’de paket nedir, paketler nasıl kurulur ve yüklenir?
Bir R paketi, belirli türde görevleri çözmek üzere tasarlanmış, R programlama dilinin bir uzantısını temsil eden fonksiyonlar, kod, veri ve dokümantasyondan oluşan bir koleksiyondur. R, önceden kurulmuş bir dizi paketle gelir ve diğer paketler kullanıcılar tarafından depolardan kurulabilir. Binlerce farklı R paketini barındıran en popüler merkezi depo, Comprehensive R Archive Network (CRAN) olarak adlandırılır.
Bir R paketini doğrudan CRAN’dan kurmak için paket adını tırnak içinde install.packages() işlevine iletmemiz gerekir: install.packages("package_name"). Birden fazla paketi tek seferde CRAN’dan kurmak için paket adlarını tırnak içinde içeren bir karakter vektörü kullanırız: install.packages(c("package_name_1", "package_name_2"). Bir R paketini elle kurmak için önce paketi bilgisayarımıza zip dosyası olarak indirmemiz ve ardından install.packages() function çalıştırmamız gerekir:
Kurulu bir R paketini çalışma R ortamına yüklemek için library() veya require() işlevlerinden birini kullanabiliriz. Her ikisi de paket adını tırnaksız alır ve paketi yükler, örn. library(caret). Ancak gerekli paketi bulamadıklarında davranışları farklıdır: library() bir hata fırlatır ve programın yürütülmesini durdurur, require() ise bir uyarı verir ve programın yürütülmesine devam eder.
7. R’de bir data frame nasıl oluşturulur?
1. Aynı uzunlukta bir veya daha fazla vektörden—data.frame() işlevini kullanarak:
Data frame’leri yatay birleştirmek için (yalnızca data frame’ler aynı sayıda satıra ve aynı sırada aynı kayıtlara sahipse) —cbind() işlevini kullanarak:
Data frame’leri dikey birleştirmek için (yalnızca aynı sırada görünen, aynı isimde ve aynı veri tipinde eşit sayıda sütuna sahiplerse) —rbind() işlevini kullanarak:
col_1 col_2
110 a
211 b
312 c
413 d
col_1 col_2 col_3
110 a 5211 b 1312 c 18413 d 16Altyapı:
Her üç durumda da tek bir değer veya bir vektör atayabilir ya da yeni sütunu bu data frame’deki veya diğer data frame’lerdeki mevcut sütunlara dayanarak hesaplayabiliriz.
9. R’de bir data frame’den sütunlar nasıl kaldırılır?
1. tidyverse koleksiyonunun dplyr paketindeki select() işlevini kullanarak. Silinecek her sütunun adı önüne eksi işareti konarak iletilir:
Bunun yerine, silinecek çok fazla sütunumuz varsa, ilgi duyduğumuz sütunları silmek yerine kalan sütunları tutmak daha mantıklıdır. Bu durumda sözdizimi benzerdir, ancak tutulacak sütun adlarının önüne eksi işareti gelmez:
2. Temel R’nin yerleşik subset() işlevini kullanarak. Yalnızca bir sütunu silmemiz gerekiyorsa, işlevin select parametresine, önüne eksi işareti getirilmiş sütun adını atarız. Birden fazla sütunu silmek için bu parametreye, gerekli sütun adlarını önlerine eksi işareti ile içeren bir vektör atarız:
Bunun yerine, silinecek çok fazla sütunumuz varsa, ilgi duyduğumuz sütunları silmek yerine kalan sütunları tutmak daha mantıklıdır. Bu durumda sözdizimi benzerdir, ancak eksi işareti eklenmez:
R’de factor, önceden tanımlı bir olası değer kümesinden (düzeyler olarak da bilinir) kategorileri kabul eden özel bir veri tipidir. Bu kategoriler karakter gibi görünse de perde arkasında tamsayı olarak saklanırlar. Çoğu zaman bu kategorilerin içsel bir sıralaması vardır. Örneğin, görüşlerin değerlendirilmesi için Likert ölçeği seçeneklerini ("kesinlikle katılıyorum", "katılıyorum", "biraz katılıyorum", "ne katılıyorum ne katılmıyorum", "biraz katılmıyorum", "katılmıyorum", "kesinlikle katılmıyorum") içeren bir data frame sütunu, bu içsel sıralamayı yakalamak ve kategorik grafik türlerinde bunu uygun şekilde yansıtmak için factor tipinde olmalıdır.
11. RStudio nedir?
RStudio, 3.0.1 sürümünden itibaren R programlama diliyle çalışmak için grafiksel bir ön yüz olarak yaygın şekilde kullanılan açık kaynaklı bir IDE’dir (tümleşik geliştirme ortamı). R kullanıcıları arasında çok popüler olmasını sağlayan birçok yararlı özelliğe sahiptir:
Kullanıcı dostu
Esnek
Çok işlevli
Yeniden kullanılabilir betikler oluşturmayı sağlar
İşlem geçmişini izler
Kod tamamlama sunar
Herhangi bir nesne hakkında ayrıntılı ve kapsamlı yardım sunar
Tüm içe aktarılmış verilere ve oluşturulan nesnelere kolay erişim sağlar
Terminal ve konsol arasında geçişi kolaylaştırır
Grafik önizlemesi yapılmasını sağlar
Verimli proje oluşturmayı ve paylaşmayı destekler
Diğer programlama dilleriyle (Python, SQL, vb.) birlikte kullanılabilir
RStudio’nun ne olduğunu, nasıl kurulacağını ve nasıl kullanılmaya başlanacağını öğrenmek için şu RStudio Eğitimini takip edebilirsiniz.
12. R Markdown nedir?
R Markdown, veri bilimi projeleri oluşturmaya yönelik bir yazım çerçevesi sağlayan, ücretsiz ve açık kaynaklı bir R paketidir. Bunu kullanarak anlatı metni, kod ve grafiklerin bir araya getirildiği tek bir .rmd dosyası yazabilir ve ardından bu dosyayı seçilen bir çıktı formatında oluşturabiliriz. R Markdown’ın temel özellikleri şunlardır:
Ortaya çıkan belgeler paylaşılabilir, tamamen tekrarlanabilir ve yayın kalitesindedir.
HTML, PDF, Microsoft Word, etkileşimli belgeler, panolar, raporlar, makaleler, kitaplar, sunumlar, uygulamalar, web siteleri, yeniden kullanılabilir şablonlar vb. dahil olmak üzere çok çeşitli statik ve dinamik çıktılar ve formatlar.
Kolay sürüm kontrolü takibi.
R, Python ve SQL dahil birden çok programlama dili desteklenir.
13. R’de kullanıcı tanımlı bir fonksiyon nasıl oluşturulur?
R’de kullanıcı tanımlı bir fonksiyon oluşturmak için function anahtar sözcüğünü ve aşağıdaki sözdizimini kullanırız:
function_name <-function(parameters){function body
}Altyapı:
Fonksiyon adı—tanımlamadan sonra fonksiyonu çağırmak için kullanılacak fonksiyon nesnesinin adı.
Fonksiyon parametreleri—parantez içinde, virgülle ayrılmış ve fonksiyon her çağrıldığında gerçek argüman değerleri atanan değişkenler.
Fonksiyon gövdesi—fonksiyon her çağrıldığında giriş argümanları üzerinde önceden tanımlı sırada gerçekleştirilecek işlemleri içeren süslü parantezler içindeki kod bloğu. Genellikle fonksiyon gövdesi, fonksiyonun çıktısını döndüren return() deyimini (veya deyimlerini) ya da çıktıyı yazdırmak için print() deyimini (veya deyimlerini) içerir.
R’de basit bir kullanıcı tanımlı fonksiyon örneği:
14. R’de popüler veri görselleştirme paketlerinden bazılarını listeleyin.
ggplot2—çok çeşitli grafikler oluşturmaya olanak tanıyan en popüler R veri görselleştirme paketi.
Lattice—çok değişkenli verileri bir dizi grafikten oluşan döşeli bir panel (trellis) olarak görüntülemek için.
Plotly—etkileşimli, yayın kalitesinde grafikler oluşturmak için.
highcharter—kolay dinamik çizim için; birçok esnek özellik, eklenti ve tema sunar; farklı R nesnelerini tek bir işleve ile çizdirebilir.
Leaflet—etkileşimli haritalar oluşturmak için.
ggvis—Shiny altyapısını kullanarak herhangi bir tarayıcıdan erişilebilen, etkileşimli ve yüksek derecede özelleştirilebilir grafikler oluşturmak için.
patchwork—genellikle çeşitli türlerdeki birden çok grafiği aynı görsel üzerinde birleştirmek için.
Orta Seviye R Programlama Mülakat Soruları
Daha deneyimli uygulayıcılar için, görüşmeyi yapan kişinin R hakkında daha ayrıntılı bilgi gerektiren bazı sorular sorması muhtemeldir. Hazırlanmanız için bazıları şunlardır:
15. R’de bir değişkene değer nasıl atanır?
<- atama operatörünü kullanarak, örn. my_var <- 1—R’de bir değişkene değer atamanın en yaygın yolu.
= eşittir operatörünü kullanarak, örn. my_var = 1—bir fonksiyon tanımı içinde argümanlara değer atamak için.
-> sağa atama operatörünü kullanarak, örn. my_var -> 1—pipe’larda kullanılabilir.
Küresel atama operatörlerini kullanarak, sola (<<-) veya sağa (->>), örn. my_var <<- 1—bir fonksiyon tanımı içinde küresel bir değişken oluşturmak için.
Bir değişken adı; harfler, rakamlar, nokta ve alt çizginin bir kombinasyonu olabilir. Boşluklar dahil başka semboller içeremez.
Bir değişken adı bir harf veya nokta ile başlamalıdır.
Bir değişken adı nokta ile başlıyorsa, bu noktanın ardından bir rakam gelemez.
R’de ayrılmış sözcükler (TRUE, for, NULL, vb.) değişken adı olarak kullanılamaz.
Değişken adları büyük/küçük harfe duyarlıdır.
Verimli R Kodu Yazma kursunda, R’de kod yazmaya ilişkin daha fazla en iyi uygulamayı bulacaksınız.
17. R’de hangi döngü türleri vardır ve her birinin sözdizimi nedir?
1. For döngüsü—bir dizi üzerinde, uzunluğu kadar (aksi halde break ve/veya next deyimleri kullanılmadıkça) yinelenir ve dizinin her öğesi üzerinde aynı işlemleri yapar. En yaygın döngü türüdür. R’de for döngüsünün sözdizimi şöyledir:
2. While döngüsü—önceden tanımlı bir mantıksal koşul (veya birkaç koşul) sağlanana kadar aynı işlemleri yapar—break ve/veya next deyimleri kullanılmadıkça. For döngülerinden farklı olarak, bir while döngüsünün kaç yineleme yapacağını önceden bilmeyiz. While döngüsünü çalıştırmadan önce bir değişken (veya birkaç değişken) atar ve her yinelemede döngü gövdesi içinde değerini güncelleriz. R’de while döngüsünün sözdizimi şöyledir:
3. Repeat döngüsü—önceden tanımlanmış bir kırılma koşulu (veya birkaç koşul) sağlanana kadar aynı işlemleri tekrarlar. Böyle bir koşulu tanıtmak için, repeat döngüsü gövdesinde bir if deyimi bloğu bulunmalı ve bunun içinde break deyimi yer almalıdır. While döngülerine benzer şekilde, repeat döngüsünün kaç yineleme yapacağını önceden bilmeyiz. R’de repeat döngüsünün sözdizimi şöyledir:
2. Data frame’leri dikey olarak birleştirmek için rbind() işlevini kullanarak—yalnızca aynı sırada görünen, aynı isimde ve aynı veri tipinde eşit sayıda sütuna sahiplerse:
type parametresi şu değerlerden birini alır: inner, left, right veya full.
20. R’de dizgiler (string) nasıl birleştirilir?
R’de iki veya daha fazla dizgiyi paste() veya cat() işlevlerini kullanarak birleştirebiliriz. İlk yaklaşım daha yaygındır. Her iki işlev de birleştirilecek herhangi sayıda dizgiyi alır ve ayrıca, sonuç dizgide eklenen dizgileri ayıracak karakteri veya karakter dizisini belirleyen isteğe bağlı sep parametresini (ve bazı diğer isteğe bağlı parametreleri) alabilir (varsayılan olarak bir boşluk).
21. R’de iki boyutlu veri nasıl döndürülür (transpose)?
R’de bir data frame’i veya matrisi, sütunların satır; satırların sütun olduğu şekilde döndürebiliriz. Bu amaçla temel R’deki t() işlevini kullanmamız gerekir. Örneğin:
22. R’de birden çok işlemi nasıl birbirine zincirleriz?
R’de tidyverse koleksiyonunun sağladığı pipe operatörünü (%>%) kullanarak birden çok işlemi zincirleyebiliriz. Bu operatörü kullanmak, bir fonksiyonun çıktısının bir sonrakinin girdisine iletildiği ve bu şekilde hat boyunca devam eden bir fonksiyon hattı (pipeline) oluşturmamıza olanak tanır. Bu, ek değişkenler oluşturma ihtiyacını ortadan kaldırır ve kod okunabilirliğini önemli ölçüde artırır.
Bir data frame üzerinde pipe operatörü kullanımına örnek:
a b c
111121221222331323441424
a b
13122413Altyapı:
23. R’de hangi tür veri görselleştirmeleri oluşturulabilir?
Veri görselleştirme R programlama dilinin güçlü yönlerinden biri olduğundan, R’de tüm türlerde veri grafikleri oluşturabiliriz:
Yaygın grafik türleri:
Çubuk grafik—kategorik verilerin sayısal değerlerini gösterir.
Çizgi grafik—genellikle zaman içinde bir değişkenin ilerleyişini gösterir.
Saçılım grafiği—iki değişken arasındaki ilişkileri gösterir.
Alan grafiği—bir çizgi grafiğine dayanır, çizginin altındaki alan renklendirilir veya bir desenle doldurulur.
Pasta grafik—kategorik verilerin her kategorisinin bütüne oranını gösterir.
Kutu grafiği—verinin bir dizi betimsel istatistiğini gösterir.
Gelişmiş grafik türleri:
Keman grafiği—hem verinin betimsel istatistiklerini hem de dağılım biçimini gösterir.
Isı haritası—veri kümesindeki her sayısal veri noktasının büyüklüğünü gösterir.
Ağaç haritası—kategorik verilerin sayısal değerlerini, sıklıkla bütüne oran olarak gösterir.
Dendrogram—verinin içsel hiyerarşisini ve kümelemeyi gösterir.
Balon grafiği—üç değişken arasındaki ilişkileri gösterir.
Hexbin grafiği—nispeten büyük bir veri kümesinde iki sayısal değişkenin ilişkilerini gösterir.
Kelime bulutu—bir metin içindeki kelimelerin sıklığını gösterir.
Koroplet harita—coğrafi verilerin toplulaştırılmış tematik istatistiklerini gösterir.
Dairesel paketleme grafiği—verinin içsel hiyerarşisini ve veri noktalarının değerlerini gösterir
vb.
R ile Veri Görselleştirme yetenek yolculuğu, R grafikleri alanında ufkunuzu genişletmenize yardımcı olacaktır. Veri görselleştirmeyi R’de daha geniş bir bağlamda öğrenmeyi tercih ederseniz, kapsamlı ve başlangıç dostu R ile Veri Bilimci kariyer yolunu keşfedin.
24. R’de vektör geri dönüşümü (vector recycling) nedir?
Farklı uzunluklara sahip iki R vektörü üzerinde bir işlem yapmaya çalışırsak, R yorumlayıcısı perde arkasında daha kısa olanı tespit eder, öğelerini aynı sırayla geri dönüştürerek vektörlerin uzunlukları eşit olana kadar tekrarlar ve ancak ondan sonra gerekli işlemi uygular. Vektör geri dönüşümüne başlamadan önce, R yorumlayıcısı vektörlerin uzunluklarının başlangıçta uyuşmadığına dair bir uyarı mesajı verir.
Örneğin, aşağıdaki toplamayı çalıştırmaya çalışırsak:
İkinci vektör, vektör geri dönüşümü nedeniyle aslında c(1, 2, 3, 1, 2)’ye dönüştürülür. Dolayısıyla bu işlemin nihai sonucu c(2, 4, 6, 5, 7) olacaktır.
Bazen vektör geri dönüşümü faydalı olabilir (ör. vektörlerde değerlerin döngüselliğini beklediğimizde), ancak çoğu zaman uygun değildir ve yanıltıcıdır. Bu nedenle, işlemleri gerçekleştirmeden önce vektörlerin uzunluklarına dikkat etmeliyiz.
25. R’de next ve break deyimlerinin kullanım amacı nedir?
next deyimi, belirli bir koşul sağlandığında ilgili yinelemeyi atlamak ve bir sonrakine geçmek için kullanılır. break deyimi ise belirli bir koşul sağlandığında ilgili yinelemede döngüyü durdurmak ve sonlandırmak için kullanılır. İç içe döngülerin içindeki döngülerden birinde kullanıldığında, bu deyim yalnızca o iç döngüden çıkar.
Hem next hem break deyimleri R’deki tüm döngü türlerinde kullanılabilir: for, while ve repeat döngülerinde. Aynı döngü içinde de kullanılabilirler, örn.:
26. R’de str() ve summary() işlevleri arasındaki fark nedir?
str() işlevi bir R nesnesinin yapısını ve onunla ilgili genel bilgileri döndürür; döndürülen içeriğin tam türü, nesnenin veri yapısına bağlıdır. Örneğin, bir vektör için, öğelerinin veri tipini, öğe indislerinin aralığını ve öğe değerlerini (vektör çok uzunsa ilk birkaç değeri) döndürür. Bir data frame için sınıfını (data.frame), gözlem ve değişken sayısını, sütun adlarını, her sütunun veri tipini ve her sütunun ilk birkaç değerini döndürür.
summary() işlevi bir R nesnesi için özet istatistikleri döndürür. Çoğunlukla data frame ve matrislere uygulanır; burada her sayısal sütun için minimum, maksimum, ortalama ve medyan değerleri ile 1. ve 3. çeyreği döndürür; factor sütunları için ise her düzeyin sayısını verir.
27. R’de subset() ve sample() işlevleri arasındaki fark nedir?
R’de subset() işlevi, belirli koşullara göre bir data frame veya matristen satır ve sütunları ya da bir vektörden öğeleri çıkarmak için kullanılır, örn.: subset(my_vector, my_vector > 10).
Buna karşın sample() işlevi R’de yalnızca vektörlere uygulanabilir. Bir vektörün öğelerinden, yerine koymalı veya koymasız, önceden belirlenmiş büyüklükte rastgele bir örnek seçer. Örneğin, sample(my_vector, size=5, replace=TRUE)
İleri Seviye R Programlama Mülakat Soruları
28. R’de diğer sütunlara dayalı olarak bir data frame’de yeni bir sütun nasıl oluşturulur?
1. Temel R’nin transform() ve ifelse() işlevlerini kullanarak:
29. R’de bir dizge temsilinden tarih nasıl ayrıştırılır?
R’de bir dizge temsilinden tarih ayrıştırmak için tidyverse koleksiyonundaki lubridate paketini kullanmalıyız. Bu paket, dizgedeki başlangıç tarih desenine dayanarak bir dizgeyi ayrıştırmak ve standart tarihi ondan çıkarmak için çeşitli işlevler sunar. Bu işlevler ymd(), ymd_hm(), ymd_hms(), dmy(), dmy_hm(), dmy_hms(), mdy(), mdy_hm(), mdy_hms() vb.dir; burada y, m, d, h, m ve s sırasıyla yıl, ay, gün, saat, dakika ve saniyeyi ifade eder.
Örneğin, dmy() işlevini "05-11-2023", "05/11/2023" veya "05.11.2023" dizgelerinden herhangi birine uygularsak, aynı sonucu alırız: 2023-11-05. Bunun nedeni, her üç durumda da ayırıcı semboller farklı olsa da aynı desene sahip olmamızdır: gün, ardından ay, ardından yıl.
30. R’de switch() işlevinin kullanım amacı nedir?
switch() işlevi, bir ifadeyi bir listedeki öğelere karşı değerlendiren çok yönlü bir dallanma kontrol deyimidir. Sözdizimi şöyledir:
Birden fazla eşleşme varsa, ilk eşleşen değer döndürülür. switch() işlevine son argüman olarak, eşleşme olmadığında varsayılan geri dönüş seçeneği olacak isimsiz bir öğe eklemek de mümkündür. Bu varsayılan seçenek ayarlanmazsa ve eşleşme yoksa işlev NULL döndürür.
switch() işlevi, kodu daha az tekrarlı ve daha okunabilir kıldığı için uzun if-else deyimlerine verimli bir alternatiftir. Genellikle tek bir ifadeyi değerlendirmek için kullanılır. Yine de birden çok ifadeyi değerlendiren daha karmaşık iç içe switch yapıları yazabiliriz. Ancak bu biçimde switch() işlevi hızla okunması zor hale gelir ve dolayısıyla if-else yapıları üzerindeki temel avantajını kaybeder.
31. apply(), lapply(), sapply() ve tapply() işlevleri arasındaki fark nedir?
Bu işlevlerin tümü, bir döngü kullanmadan bir veri yapısı üzerinde yineleme yapmamıza ve her öğeye aynı işlemi uygulamamıza olanak tanırken, girdi ve çıktı türleri ile gerçekleştirdikleri işlev bakımından farklılık gösterir.
apply()—bir data frame, matris veya dizi alır ve bir vektör, liste, matris veya dizi döndürür. Bu işlev satır bazında, sütun bazında veya her ikisine uygulanabilir.
lapply()—bir vektör, liste veya data frame alır ve her zaman bir liste döndürür. Girdi olarak data frame verildiğinde, yalnızca sütun bazında uygulanır.
sapply()—bir vektör, liste veya data frame alır ve en sadeleştirilmiş veri yapısını döndürür; yani girdi vektörü için vektör, girdi listesi için liste, girdi data frame’i için matris.
tapply()—farklı faktörler (yani kategorik veriler) için özet istatistikler hesaplar.
32. R’deki kontrol deyimlerini listeleyin ve tanımlayın.
R’de üç grup kontrol deyimi vardır: koşullu deyimler, döngü deyimleri ve atlama (jump) deyimleri.
Koşullu deyimler:
if—belirli bir koşulun doğru olup olmadığını test eder ve doğruysa yapılacak işlemleri sağlar.
if-else—belirli bir koşulun doğru olup olmadığını test eder, doğruysa yapılacak işlemleri ve aksi durumda yapılacak başka bir işlem setini sağlar.
if... else if... else—bir dizi koşulu tek tek test eder, her koşul doğruysa yapılacak işlemleri ve hiçbir koşul doğru değilse yapılacak yedek işlem setini sağlar.
switch—bir ifadeyi bir listedeki öğelere karşı değerlendirir ve bu değerlendirmenin sonucuna göre listeden bir değer döndürür.
Döngü deyimleri:
for—for döngülerinde, bir dizi üzerinde yineler.
while—while döngülerinde, mevcut yinelemede önceden tanımlı bir mantıksal koşulun (veya birkaç koşulun) sağlanıp sağlanmadığını denetler.
repeat—repeat döngülerinde, önceden tanımlı bir kırılma koşulu (veya birkaç koşul) sağlanana kadar aynı işlemleri sürdürür.
Atlama (jump) deyimleri:
next—belirli bir koşul sağlandığında bir döngünün belirli bir yinelemesini atlar ve bir sonrakine geçer.
break—belirli bir koşul sağlandığında belirli bir yinelemede döngüyü durdurur ve sonlandırır.
return—bir fonksiyondan çıkar ve sonucu döndürür.
33. Düzenli ifadeler (regular expressions) nedir ve R’de onlarla nasıl çalışılır?
R’de veya diğer programlama dillerinde düzenli ifade (regex), belirli bir metin desenini tanımlayan ve metin verilerini madencilikte kullanılan bir karakter veya karakter dizisidir. R’de düzenli ifadelerle çalışmanın iki ana yolu vardır:
Temel R ve onun işlevlerini (örneğin grep(), regexpr(), gsub(), regmatches() vb.) kullanarak regex’leri bulmak, eşleştirmek, çıkarmak ve değiştirmek.
tidyverse koleksiyonunun özel stringr paketini kullanmak. Bu, R regex ile çalışmanın daha kullanışlı bir yoludur; çünkü stringr işlevlerinin adları ve sözdizimi çok daha sezgiseldir ve daha kapsamlı işlevsellik sunarlar.
34. R’de makine öğrenmesi için kullanılan paketler nelerdir?
caret—çeşitli sınıflandırma ve regresyon algoritmaları için.
e1071—destek vektör makineleri (SVM), naive Bayes sınıflandırıcı, torbalı kümeleme, bulanık kümeleme ve en yakın k-komşu (KNN) için.
kernlab—sınıflandırma, regresyon ve kümeleme algoritmaları için çekirdek (kernel) tabanlı yöntemler sağlar.
randomForest—rasgele orman sınıflandırma ve regresyon algoritmaları için.
xgboost—gradyan artırma, doğrusal regresyon ve karar ağacı algoritmaları için.
rpart—sınıflandırma, regresyon ve sağkalım ağaçlarında yinelemeli bölütleme için.
glmnet—doğrusal regresyon, lojistik regresyon ve çok terimli regresyon algoritmalarına uygulanan lasso ve elastic-net düzenlileştirme yöntemleri için.
nnet—yapay sinir ağları ve çok terimli log-lineer algoritmalar için.
tensorflow—TensorFlow için R arayüzü; derin sinir ağları ve veri akış grafikleri kullanarak sayısal hesaplama için.
Keras—Keras için R arayüzü; derin sinir ağları için.
35. R’de makine öğrenmesi için özellikler (feature) nasıl seçilir?
Üç farklı yaklaşımı ve bunların caret paketinde nasıl uygulanacağını ele alalım.
Veri kümesinden yüksek korelasyonlu özellikleri tespit edip kaldırarak.
Tüm özelliklerin bir korelasyon matrisini oluşturmalı ve ardından genellikle korelasyon katsayısı 0,75’ten büyük olan yüksek korelasyonluları belirlemeliyiz:
Data frame özelliklerini önem derecesine göre sıralayarak.
Eğitimi kontrol edecek bir eğitim şeması oluşturmalı, bunu seçilen bir modeli kurmak için kullanmalı ve ardından o model için değişken önemini tahmin etmeliyiz:
control <- trainControl(method="repeatedcv", number=10, repeats=5)
model <- train(response_variable~., data=df, method="lvq", preProcess="scale", trControl=control)
importance <- varImp(model)
print(importance)Altyapı:
Optimal özellikleri otomatik olarak seçerek.
caret tarafından sağlanan en popüler yöntemlerden biri, geri doğru seçim algoritması olan RFE (Recursive Feature Elimination)’dir.
Seçilen bir yeniden örnekleme yöntemi ve önceden tanımlı bir işlev listesi kullanarak kontrolü hesaplamalı, RFE algoritmasını; özellikleri, hedef değişkeni, tutulacak özellik sayısını ve kontrolü ileterek uygulamalı ve ardından seçilen öngörücüleri çıkarmalıyız:
R’de makine öğrenmesi becerilerinizi güçlendirmeniz gerekiyorsa, işte sağlam ve kapsamlı bir kaynak: R ile Makine Öğrenmesi Bilimcisi.
36. Korelasyon ve kovaryans nedir ve R’de nasıl hesaplanır?
Korelasyon, iki değişken arasındaki doğrusal ilişkinin yönü ve gücünün bir ölçüsüdür. -1 (mükemmel negatif korelasyon) ile 1 (mükemmel pozitif korelasyon) arasında değer alır. Kovaryans, iki değişkenin birbirine göre nasıl değiştiğinin derecesi ve aralarındaki doğrusal ilişkinin yönünün bir ölçüsüdür. Korelasyondan farklı olarak kovaryansın bir aralık sınırı yoktur.
R’de, korelasyonu hesaplamak için cor(), kovaryansı hesaplamak için cov() işlevini kullanmamız gerekir. Her iki işlevin sözdizimi aynıdır: Ölçümü hesaplamak istediğimiz iki değişkeni (vektörü) iletmemiz gerekir (örn. cor(vector_1, vector_2) veya cov(vector_1, vector_2)) ya da tüm değişkenleri arasındaki korelasyonu veya kovaryansı hesaplamak istiyorsak tüm data frame’i (örn. cor(df) veya cov(df)). İki vektör durumunda sonuç tek bir değer olur; data frame durumunda sonuç bir korelasyon (veya kovaryans) matrisi olur.
37. R’de model doğruluğunu tahmin etmeye yönelik çeşitli yaklaşımları listeleyin ve tanımlayın.
Aşağıda birkaç yaklaşım ve bunların R’de caret paketiyle nasıl uygulanacağı yer almaktadır.
Veri bölme—tüm veri kümesi bir eğitim ve bir test veri kümesine bölünür. İlki modeli uyarlamak için, ikincisi ise modeli görülmemiş veriler üzerinde test etmek için kullanılır. Bu yaklaşım özellikle büyük veride iyi çalışır. R’de veri bölmeyi uygulamak için createDataPartition() işlevini kullanmalı ve p parametresini eğitime gidecek veri oranına ayarlamalıyız.
Bootstrap yeniden örnekleme—veri kümesinden rastgele veri örnekleri çıkarma ve modelin bunlar üzerinde tahmini. Bu yeniden örnekleme iterasyonları çok kez ve yerine koymalı çalıştırılır. R’de bootstrap yeniden örneklemeyi uygulamak için, modelin eğitim kontrolünü tanımlarken trainControl() işlevinin method parametresini "boot" olarak ayarlamalıyız.
Çapraz doğrulama yöntemleri
k-katlı çapraz doğrulama —veri kümesi k alt kümeye bölünür. Model k-1 alt kümede eğitilir ve kalan birinde test edilir. Aynı süreç tüm alt kümeler için tekrarlanır ve ardından nihai model doğruluğu tahmin edilir.
Tekrarlamalı k-katlı çapraz doğrulama —ilkesi k-katlı çapraz doğrulama ile aynıdır, ancak veri kümesi birden fazla kez k alt kümeye bölünür. Her tekrar için model doğruluğu tahmin edilir ve ardından nihai doğruluk, tüm tekrarların doğruluk değerlerinin ortalaması olarak hesaplanır.
Birini dışarıda bırak çapraz doğrulama (LOOCV) —bir veri gözlemi kenara ayrılır ve model diğer tüm gözlemler üzerinde eğitilir. Aynı süreç tüm gözlemler için tekrarlanır.
Bu çapraz doğrulama yöntemlerini R’de uygulamak için, modelin eğitim kontrolünü tanımlarken trainControl() işlevinin method parametresini sırasıyla "cv", "repeatedcv" veya "LOOCV" olarak ayarlamalıyız.
38. Ki-kare testi nedir ve R’de nasıl uygulanır?
Ki-kare istatistiksel hipotez testi, iki kategorik değişkenin bağımsız olup olmadığını veya aralarında bir ilişki bulunup bulunmadığını belirlemek için kullanılan bir tekniktir. R’de ki-kare testini uygulamak için stats paketindeki chisq.test() işlevini kullanmalıyız. Adımlar şunlardır:
1. İlgilenilen kategorik değişkenlerle temel R’nin table() işlevini kullanarak bir çapraz tablo oluşturun:
Ki-kare testlerini ve diğer hipotez testlerini bilgilerinizi tazelemek için R’de Hipotez Testi kursumuza göz atabilirsiniz.
39. R’de Shiny nedir?
Shiny, yalnızca R kullanarak, HTML, CSS veya JavaScript bilgisi gerektirmeden, veri bilimi için tamamen etkileşimli web uygulamaları ve web sayfaları oluşturmayı kolay ve hızlı hale getiren, açık kaynaklı bir R paketidir. R’de Shiny; çok sayıda temel ve gelişmiş özellik, bileşen, yerleşim, web uygulama örnekleri ve üzerine inşa edip özelleştirilebilecek temel kodlar ile Shiny uygulama geliştirici topluluğu tarafından toplanıp kategorize edilen çeşitli alanlardan (teknoloji, spor, bankacılık, eğitim vb.) kullanıcı vitrinleri sunar.
40. with() ve within() işlevleri arasındaki fark nedir?
with() işlevi, bir data frame’in bir veya daha fazla değişkeni üzerinde bir R ifadesini değerlendirir ve sonucu data frame’i değiştirmeden çıktılar. within() işlevi ise bir data frame’in bir veya daha fazla değişkeni üzerinde bir R ifadesini değerlendirir, data frame’i değiştirir ve sonucu çıktılar. Aşağıda bu işlevlerin bir örnek data frame üzerinden nasıl çalıştığını görebiliriz:
df <- data.frame(a = c(1,2,3), b = c(10,20,30))
print(df)
with(df, a * b)
print(within(df, c <- a * b))Altyapı:
Çıktı:
a b
111022203330104090
a b c
111010222040333090Altyapı:
within() işlevini kullanırken, yapılan değişiklikleri kaydetmek için işlevin çıktısını bir değişkene atamamız gerekir.
Sonuç
Sonuç olarak, bu makalede en yaygın 40 R programlama mülakat sorusunu ve her biri için beklenen yanıtları ele aldık. Umarız bu bilgilerle, ister R alanında bir iş arıyor olun ister şirketinizdeki açık bir pozisyon için doğru adayı arıyor olun, başarılı bir R mülakatına daha hazır ve kendinizden emin hissedersiniz.
IBM Sertifikalı Veri Bilimci (2020); daha önce dünya genelindeki petrol ve gaz sahalarında 12+ yıllık uluslararası iş deneyimine sahip Petrol Jeoloğu/Jeomodelleyicisi. Python, R ve SQL konusunda yetkin. Uzmanlık alanları: veri temizleme, veri işleme, veri görselleştirme, veri analizi, veri modelleme, istatistik, hikâye anlatımı, makine öğrenimi. Veri bilimi topluluklarını yönetme ve veri bilimi ile kariyer konularında makale ve eğitim yazma/gözden geçirme konusunda kapsamlı deneyim.
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!
Verimli bir şekilde kod yazmayı ve paketlemeyi öğrenerek bir R Geliştiricisi olarak başarılı olmak için ihtiyaç duyduğunuz kariyer geliştirme becerilerini kazanın. Kodlama deneyimine gerek yok!
Veri manipülasyonundan makine öğrenimine kadar veri bilimi için R'yi nasıl kullanacağınızı öğrenin. Veri biliminde başarılı olmak için ihtiyacınız olan kariyer geliştirme becerilerini kazanın!
Bir R mülakatında başarılı olma şansınızı artırmak için, iş arıyorsanız size sorulabilecek olası soruları ya da işe alım sorumlusu veya işe alım uzmanıysanız bir adaya sorabileceğiniz soruları önceden bilmek her zaman faydalıdır.
Bu makalede, tüm kıdem seviyeleri için 40 temel R programlama mülakat sorusu ve cevapları ile bazı genel mülakat soruları ele alınmaktadır. Kolaylık olması için tüm teknik sorular üç seviyeye ayrılmıştır: başlangıç, orta ve ileri seviye sorular.
R programlama mülakat hazırlığınız için ek kaynaklar olarak aşağıdaki yararlı blog ve kursları göz önünde bulundurun:
Genel R Programlama Mülakat Soruları
Bir R mülakatının başında, görüşmeyi yapan kişi adayın R ile genel deneyimine ilişkin bazı teknik olmayan, genel sorular sorabilir. Örneğin:
Eğer iş arıyorsanız, bu ve benzeri sorular hakkında önceden düşünmeli ve cevaplarınızı hazırlamalısınız. Henüz R ile gerçek bir iş deneyiminiz yoksa endişelenmeyin: R programlamadaki stajınızı veya öğreniminiz sırasında tamamladığınız bireysel ya da grup R projelerini anlatmanız gayet yeterlidir.
Ayrıca, başlangıç seviyesindeki bir pozisyon için mülakata giriyorsanız, görüşmeyi yapan kişi sizden mutlaka kapsamlı (hatta herhangi bir) R iş deneyimi beklemeyebilir. Unutmayın ki bu mülakata davet edildiğinize göre, şirket özgeçmişinizi zaten ilgi çekici bulmuştur.
Başlangıç Seviyesi R Programlama Mülakat Soruları
Potansiyel işvereninizden karşılaşabileceğiniz bazı temel teknik R mülakat sorularıyla başlayalım. Bunlar, temelleri öğrenmiş olmanızı ve R’yi pratikte kullanma deneyimine sahip olmanızı gerektirir.
1. R nedir ve temel özellikleri nelerdir?
R, veri bilimi problemlerini çözmek için yaygın olarak kullanılan, özellikle istatistiksel hesaplama ve veri görselleştirme için tasarlanmış bir programlama dili ve ortamıdır. Temel özellikleri şunlardır:
2. R kullanmanın bazı dezavantajları nelerdir?
3. R’deki bazı temel veri tiplerini listeleyin ve tanımlayın.
R’de birkaç veri tipi vardır, bunlar şunlardır:
TRUEveFALSEBoolean değerleri; perde arkasında sırasıyla 1 ve 0 olarak temsil edilir.4. R’deki bazı temel veri yapılarını listeleyin ve tanımlayın.
5. R’de veri nasıl içe aktarılır?
Temel R, veri içe aktarmak için gerekli işlevleri sağlar:
read.table()—temel R’de veri içe aktarmak için en genel işlevidir, alan ayraçları herhangi bir türde olan (ör. | gibi belirli ayraçlar dahil) tablo verilerini alır.read.csv()—ondalık ayırıcı olarak.kullanan virgülle ayrılmış değer (CSV) dosyaları.read.csv2()—ondalık ayırıcı olarak,kullanan noktalı virgülle ayrılmış değer dosyaları.read.delim()—ondalık ayırıcı olarak.kullanan sekmeyle ayrılmış değer (TSV) dosyaları.read.delim2()—ondalık ayırıcı olarak,kullanan sekmeyle ayrılmış değer (TSV) dosyaları.Uygulamada, bu işlevlerin her biri, alan ve ondalık ayraçları ne olursa olsun tablo verilerini içe aktarmak için kullanılabilir: belirtilen dosya formatları için kullanımları yalnızca bir gelenek ve varsayılan ayarlar meselesidir. Örneğin, ilk işlevin sözdizimi şöyledir:
read.table(file, header = FALSE, sep = "", dec = "."). Diğer işlevler aynı parametrelere sahiptir, ancak varsayılan ayarları farklıdır ve bunlar her zaman açıkça geçersiz kılınabilir.tidyverse paketlerindeki readr ve readxl, belirli dosya formatlarını içe aktarmak için başka işlevler sunar. Bu işlevlerin her biri, çeşitli isteğe bağlı parametreler ayarlanarak daha da ince ayar yapılabilir.
readr
read_tsv()—sekmeyle ayrılmış değer (TSV) dosyaları.read_fwf()—sabit genişlikli dosyalar.read_log()—web günlük dosyaları.read_table(),read_csv(),read_csv2()veread_delim()—temel R işlevlerinin karşılıkları.readxl
read_excel()—Excel dosyaları.read_csv()—temel R’deki işleve eşdeğer.R’de veri yüklemeye daha derin dalmak için Veriler R’ye Nasıl İçe Aktarılır eğitimine göz atabilirsiniz.
6. R’de paket nedir, paketler nasıl kurulur ve yüklenir?
Bir R paketi, belirli türde görevleri çözmek üzere tasarlanmış, R programlama dilinin bir uzantısını temsil eden fonksiyonlar, kod, veri ve dokümantasyondan oluşan bir koleksiyondur. R, önceden kurulmuş bir dizi paketle gelir ve diğer paketler kullanıcılar tarafından depolardan kurulabilir. Binlerce farklı R paketini barındıran en popüler merkezi depo, Comprehensive R Archive Network (CRAN) olarak adlandırılır.
Bir R paketini doğrudan CRAN’dan kurmak için paket adını tırnak içinde
install.packages()işlevine iletmemiz gerekir:install.packages("package_name"). Birden fazla paketi tek seferde CRAN’dan kurmak için paket adlarını tırnak içinde içeren bir karakter vektörü kullanırız:install.packages(c("package_name_1", "package_name_2"). Bir R paketini elle kurmak için önce paketi bilgisayarımıza zip dosyası olarak indirmemiz ve ardındaninstall.packages() functionçalıştırmamız gerekir:Kurulu bir R paketini çalışma R ortamına yüklemek için
library()veyarequire()işlevlerinden birini kullanabiliriz. Her ikisi de paket adını tırnaksız alır ve paketi yükler, örn.library(caret). Ancak gerekli paketi bulamadıklarında davranışları farklıdır:library()bir hata fırlatır ve programın yürütülmesini durdurur,require()ise bir uyarı verir ve programın yürütülmesine devam eder.7. R’de bir data frame nasıl oluşturulur?
1. Aynı uzunlukta bir veya daha fazla vektörden—
data.frame()işlevini kullanarak:2. Bir matristen—
data.frame()işlevini kullanarak:3. Aynı uzunlukta bir vektör listesinden—
data.frame()işlevini kullanarak:4. Diğer data framelerden:
Data frame’leri yatay birleştirmek için (yalnızca data frame’ler aynı sayıda satıra ve aynı sırada aynı kayıtlara sahipse) —
cbind()işlevini kullanarak:Data frame’leri dikey birleştirmek için (yalnızca aynı sırada görünen, aynı isimde ve aynı veri tipinde eşit sayıda sütuna sahiplerse) —
rbind()işlevini kullanarak:8. R’de bir data frame’e yeni bir sütun nasıl eklenir?
$sembolünü kullanarak:Çıktı:
Çıktı:
cbind()işlevini kullanarak:Çıktı:
Her üç durumda da tek bir değer veya bir vektör atayabilir ya da yeni sütunu bu data frame’deki veya diğer data frame’lerdeki mevcut sütunlara dayanarak hesaplayabiliriz.
9. R’de bir data frame’den sütunlar nasıl kaldırılır?
1. tidyverse koleksiyonunun dplyr paketindeki
select()işlevini kullanarak. Silinecek her sütunun adı önüne eksi işareti konarak iletilir:Bunun yerine, silinecek çok fazla sütunumuz varsa, ilgi duyduğumuz sütunları silmek yerine kalan sütunları tutmak daha mantıklıdır. Bu durumda sözdizimi benzerdir, ancak tutulacak sütun adlarının önüne eksi işareti gelmez:
2. Temel R’nin yerleşik subset() işlevini kullanarak. Yalnızca bir sütunu silmemiz gerekiyorsa, işlevin select parametresine, önüne eksi işareti getirilmiş sütun adını atarız. Birden fazla sütunu silmek için bu parametreye, gerekli sütun adlarını önlerine eksi işareti ile içeren bir vektör atarız:
Bunun yerine, silinecek çok fazla sütunumuz varsa, ilgi duyduğumuz sütunları silmek yerine kalan sütunları tutmak daha mantıklıdır. Bu durumda sözdizimi benzerdir, ancak eksi işareti eklenmez:
10. R’de factor nedir?
R’de factor, önceden tanımlı bir olası değer kümesinden (düzeyler olarak da bilinir) kategorileri kabul eden özel bir veri tipidir. Bu kategoriler karakter gibi görünse de perde arkasında tamsayı olarak saklanırlar. Çoğu zaman bu kategorilerin içsel bir sıralaması vardır. Örneğin, görüşlerin değerlendirilmesi için Likert ölçeği seçeneklerini ("kesinlikle katılıyorum", "katılıyorum", "biraz katılıyorum", "ne katılıyorum ne katılmıyorum", "biraz katılmıyorum", "katılmıyorum", "kesinlikle katılmıyorum") içeren bir data frame sütunu, bu içsel sıralamayı yakalamak ve kategorik grafik türlerinde bunu uygun şekilde yansıtmak için factor tipinde olmalıdır.
11. RStudio nedir?
RStudio, 3.0.1 sürümünden itibaren R programlama diliyle çalışmak için grafiksel bir ön yüz olarak yaygın şekilde kullanılan açık kaynaklı bir IDE’dir (tümleşik geliştirme ortamı). R kullanıcıları arasında çok popüler olmasını sağlayan birçok yararlı özelliğe sahiptir:
RStudio’nun ne olduğunu, nasıl kurulacağını ve nasıl kullanılmaya başlanacağını öğrenmek için şu RStudio Eğitimini takip edebilirsiniz.
12. R Markdown nedir?
R Markdown, veri bilimi projeleri oluşturmaya yönelik bir yazım çerçevesi sağlayan, ücretsiz ve açık kaynaklı bir R paketidir. Bunu kullanarak anlatı metni, kod ve grafiklerin bir araya getirildiği tek bir .rmd dosyası yazabilir ve ardından bu dosyayı seçilen bir çıktı formatında oluşturabiliriz. R Markdown’ın temel özellikleri şunlardır:
13. R’de kullanıcı tanımlı bir fonksiyon nasıl oluşturulur?
R’de kullanıcı tanımlı bir fonksiyon oluşturmak için
functionanahtar sözcüğünü ve aşağıdaki sözdizimini kullanırız:return()deyimini (veya deyimlerini) ya da çıktıyı yazdırmak içinprint()deyimini (veya deyimlerini) içerir.R’de basit bir kullanıcı tanımlı fonksiyon örneği:
14. R’de popüler veri görselleştirme paketlerinden bazılarını listeleyin.
Orta Seviye R Programlama Mülakat Soruları
Daha deneyimli uygulayıcılar için, görüşmeyi yapan kişinin R hakkında daha ayrıntılı bilgi gerektiren bazı sorular sorması muhtemeldir. Hazırlanmanız için bazıları şunlardır:
15. R’de bir değişkene değer nasıl atanır?
<-atama operatörünü kullanarak, örn.my_var <- 1—R’de bir değişkene değer atamanın en yaygın yolu.=eşittir operatörünü kullanarak, örn.my_var = 1—bir fonksiyon tanımı içinde argümanlara değer atamak için.->sağa atama operatörünü kullanarak, örn.my_var -> 1—pipe’larda kullanılabilir.Küresel atama operatörlerini kullanarak, sola (
<<-) veya sağa (->>), örn.my_var <<- 1—bir fonksiyon tanımı içinde küresel bir değişken oluşturmak için.16. R’de değişken adlandırmanın gereklilikleri nelerdir?
Bir değişken adı; harfler, rakamlar, nokta ve alt çizginin bir kombinasyonu olabilir. Boşluklar dahil başka semboller içeremez.
Bir değişken adı bir harf veya nokta ile başlamalıdır.
Bir değişken adı nokta ile başlıyorsa, bu noktanın ardından bir rakam gelemez.
R’de ayrılmış sözcükler (
TRUE,for,NULL, vb.) değişken adı olarak kullanılamaz.Değişken adları büyük/küçük harfe duyarlıdır.
Verimli R Kodu Yazma kursunda, R’de kod yazmaya ilişkin daha fazla en iyi uygulamayı bulacaksınız.
17. R’de hangi döngü türleri vardır ve her birinin sözdizimi nedir?
1. For döngüsü—bir dizi üzerinde, uzunluğu kadar (aksi halde
breakve/veyanextdeyimleri kullanılmadıkça) yinelenir ve dizinin her öğesi üzerinde aynı işlemleri yapar. En yaygın döngü türüdür. R’de for döngüsünün sözdizimi şöyledir:2. While döngüsü—önceden tanımlı bir mantıksal koşul (veya birkaç koşul) sağlanana kadar aynı işlemleri yapar—
breakve/veyanextdeyimleri kullanılmadıkça. For döngülerinden farklı olarak, bir while döngüsünün kaç yineleme yapacağını önceden bilmeyiz. While döngüsünü çalıştırmadan önce bir değişken (veya birkaç değişken) atar ve her yinelemede döngü gövdesi içinde değerini güncelleriz. R’de while döngüsünün sözdizimi şöyledir:3. Repeat döngüsü—önceden tanımlanmış bir kırılma koşulu (veya birkaç koşul) sağlanana kadar aynı işlemleri tekrarlar. Böyle bir koşulu tanıtmak için, repeat döngüsü gövdesinde bir if deyimi bloğu bulunmalı ve bunun içinde
breakdeyimi yer almalıdır. While döngülerine benzer şekilde, repeat döngüsünün kaç yineleme yapacağını önceden bilmeyiz. R’de repeat döngüsünün sözdizimi şöyledir:Ayrı eğitimimizde R’de Döngüler hakkında daha fazla okuyabilirsiniz.
18. R’de veri nasıl özetlenir (aggregate)?
R’de veriyi özetlemek için
aggregate()işlevini kullanırız. Bu işlevin şu temel parametreleri vardır ve bu sırayla verilir:x—özetlenecek data frame.by—gruplanacak faktörlerin bir listesi.FUN—her grup için özet istatistikleri hesaplayacak bir toplama (aggregate) fonksiyonu (örn.mean,max,min,count,sum).19. R’de veriler nasıl birleştirilir?
1.
cbind()işlevini kullanarak—yalnızca data frame’ler aynı sayıda satıra ve aynı sırada aynı kayıtlara sahipse:2. Data frame’leri dikey olarak birleştirmek için
rbind()işlevini kullanarak—yalnızca aynı sırada görünen, aynı isimde ve aynı veri tipinde eşit sayıda sütuna sahiplerse:3. Genellikle bir ID sütunu olan ortak bir sütuna göre data frame’leri birleştirmek için
merge()işlevini kullanarak:4. Genellikle bir ID sütunu olan ortak bir sütuna göre data frame’leri birleştirmek için dplyr paketindeki
join()işlevini kullanarak:typeparametresi şu değerlerden birini alır:inner,left,rightveyafull.20. R’de dizgiler (string) nasıl birleştirilir?
R’de iki veya daha fazla dizgiyi
paste()veyacat()işlevlerini kullanarak birleştirebiliriz. İlk yaklaşım daha yaygındır. Her iki işlev de birleştirilecek herhangi sayıda dizgiyi alır ve ayrıca, sonuç dizgide eklenen dizgileri ayıracak karakteri veya karakter dizisini belirleyen isteğe bağlısepparametresini (ve bazı diğer isteğe bağlı parametreleri) alabilir (varsayılan olarak bir boşluk).21. R’de iki boyutlu veri nasıl döndürülür (transpose)?
R’de bir data frame’i veya matrisi, sütunların satır; satırların sütun olduğu şekilde döndürebiliriz. Bu amaçla temel R’deki
t()işlevini kullanmamız gerekir. Örneğin:Çıktı:
22. R’de birden çok işlemi nasıl birbirine zincirleriz?
R’de tidyverse koleksiyonunun sağladığı pipe operatörünü (
%>%) kullanarak birden çok işlemi zincirleyebiliriz. Bu operatörü kullanmak, bir fonksiyonun çıktısının bir sonrakinin girdisine iletildiği ve bu şekilde hat boyunca devam eden bir fonksiyon hattı (pipeline) oluşturmamıza olanak tanır. Bu, ek değişkenler oluşturma ihtiyacını ortadan kaldırır ve kod okunabilirliğini önemli ölçüde artırır.Bir data frame üzerinde pipe operatörü kullanımına örnek:
Çıktı:
23. R’de hangi tür veri görselleştirmeleri oluşturulabilir?
Veri görselleştirme R programlama dilinin güçlü yönlerinden biri olduğundan, R’de tüm türlerde veri grafikleri oluşturabiliriz:
R ile Veri Görselleştirme yetenek yolculuğu, R grafikleri alanında ufkunuzu genişletmenize yardımcı olacaktır. Veri görselleştirmeyi R’de daha geniş bir bağlamda öğrenmeyi tercih ederseniz, kapsamlı ve başlangıç dostu R ile Veri Bilimci kariyer yolunu keşfedin.
24. R’de vektör geri dönüşümü (vector recycling) nedir?
Farklı uzunluklara sahip iki R vektörü üzerinde bir işlem yapmaya çalışırsak, R yorumlayıcısı perde arkasında daha kısa olanı tespit eder, öğelerini aynı sırayla geri dönüştürerek vektörlerin uzunlukları eşit olana kadar tekrarlar ve ancak ondan sonra gerekli işlemi uygular. Vektör geri dönüşümüne başlamadan önce, R yorumlayıcısı vektörlerin uzunluklarının başlangıçta uyuşmadığına dair bir uyarı mesajı verir.
Örneğin, aşağıdaki toplamayı çalıştırmaya çalışırsak:
İkinci vektör, vektör geri dönüşümü nedeniyle aslında
c(1, 2, 3, 1, 2)’ye dönüştürülür. Dolayısıyla bu işlemin nihai sonucuc(2, 4, 6, 5, 7)olacaktır.Bazen vektör geri dönüşümü faydalı olabilir (ör. vektörlerde değerlerin döngüselliğini beklediğimizde), ancak çoğu zaman uygun değildir ve yanıltıcıdır. Bu nedenle, işlemleri gerçekleştirmeden önce vektörlerin uzunluklarına dikkat etmeliyiz.
25. R’de next ve break deyimlerinin kullanım amacı nedir?
nextdeyimi, belirli bir koşul sağlandığında ilgili yinelemeyi atlamak ve bir sonrakine geçmek için kullanılır.breakdeyimi ise belirli bir koşul sağlandığında ilgili yinelemede döngüyü durdurmak ve sonlandırmak için kullanılır. İç içe döngülerin içindeki döngülerden birinde kullanıldığında, bu deyim yalnızca o iç döngüden çıkar.Hem
nexthembreakdeyimleri R’deki tüm döngü türlerinde kullanılabilir: for, while ve repeat döngülerinde. Aynı döngü içinde de kullanılabilirler, örn.:Çıktı:
26. R’de str() ve summary() işlevleri arasındaki fark nedir?
str()işlevi bir R nesnesinin yapısını ve onunla ilgili genel bilgileri döndürür; döndürülen içeriğin tam türü, nesnenin veri yapısına bağlıdır. Örneğin, bir vektör için, öğelerinin veri tipini, öğe indislerinin aralığını ve öğe değerlerini (vektör çok uzunsa ilk birkaç değeri) döndürür. Bir data frame için sınıfını (data.frame), gözlem ve değişken sayısını, sütun adlarını, her sütunun veri tipini ve her sütunun ilk birkaç değerini döndürür.summary()işlevi bir R nesnesi için özet istatistikleri döndürür. Çoğunlukla data frame ve matrislere uygulanır; burada her sayısal sütun için minimum, maksimum, ortalama ve medyan değerleri ile 1. ve 3. çeyreği döndürür; factor sütunları için ise her düzeyin sayısını verir.27. R’de subset() ve sample() işlevleri arasındaki fark nedir?
R’de
subset()işlevi, belirli koşullara göre bir data frame veya matristen satır ve sütunları ya da bir vektörden öğeleri çıkarmak için kullanılır, örn.:subset(my_vector, my_vector > 10).Buna karşın
sample()işlevi R’de yalnızca vektörlere uygulanabilir. Bir vektörün öğelerinden, yerine koymalı veya koymasız, önceden belirlenmiş büyüklükte rastgele bir örnek seçer. Örneğin,sample(my_vector, size=5, replace=TRUE)İleri Seviye R Programlama Mülakat Soruları
28. R’de diğer sütunlara dayalı olarak bir data frame’de yeni bir sütun nasıl oluşturulur?
1. Temel R’nin
transform()veifelse()işlevlerini kullanarak:Çıktı:
2. Temel R’nin
with()veifelse()işlevlerini kullanarak:Çıktı:
3. Temel R’nin
apply()işlevini kullanarak:Çıktı:
4. dplyr paketinin
mutate()işlevi ve temel R’ninifelse()işlevini kullanarak:Çıktı:
29. R’de bir dizge temsilinden tarih nasıl ayrıştırılır?
R’de bir dizge temsilinden tarih ayrıştırmak için tidyverse koleksiyonundaki lubridate paketini kullanmalıyız. Bu paket, dizgedeki başlangıç tarih desenine dayanarak bir dizgeyi ayrıştırmak ve standart tarihi ondan çıkarmak için çeşitli işlevler sunar. Bu işlevler
ymd(),ymd_hm(),ymd_hms(),dmy(),dmy_hm(),dmy_hms(),mdy(),mdy_hm(),mdy_hms()vb.dir; burada y, m, d, h, m ve s sırasıyla yıl, ay, gün, saat, dakika ve saniyeyi ifade eder.Örneğin,
dmy()işlevini "05-11-2023", "05/11/2023" veya "05.11.2023" dizgelerinden herhangi birine uygularsak, aynı sonucu alırız:2023-11-05. Bunun nedeni, her üç durumda da ayırıcı semboller farklı olsa da aynı desene sahip olmamızdır: gün, ardından ay, ardından yıl.30. R’de switch() işlevinin kullanım amacı nedir?
switch()işlevi, bir ifadeyi bir listedeki öğelere karşı değerlendiren çok yönlü bir dallanma kontrol deyimidir. Sözdizimi şöyledir:switch()işlevine iletilen ifade bir sayı veya karakter dizgesi olarak değerlendirilebilir ve buna bağlı olarak işlevin davranışı değişir.1. İfade bir sayıya değerlendiriliyorsa,
switch()işlevi listedeki öğeyi konumsal eşleşmeye göre döndürür (yani dizini, ifadenin değerlendiği sayıya eşittir). Sayı listedeki öğe sayısından büyükse,switch()NULLdöndürür. Örneğin:Çıktı:
2. İfade bir karakter dizgesine değerlendiriliyorsa,
switch()işlevi değeri adına göre döndürür:Çıktı:
Birden fazla eşleşme varsa, ilk eşleşen değer döndürülür.
switch()işlevine son argüman olarak, eşleşme olmadığında varsayılan geri dönüş seçeneği olacak isimsiz bir öğe eklemek de mümkündür. Bu varsayılan seçenek ayarlanmazsa ve eşleşme yoksa işlevNULLdöndürür.switch()işlevi, kodu daha az tekrarlı ve daha okunabilir kıldığı için uzun if-else deyimlerine verimli bir alternatiftir. Genellikle tek bir ifadeyi değerlendirmek için kullanılır. Yine de birden çok ifadeyi değerlendiren daha karmaşık iç içe switch yapıları yazabiliriz. Ancak bu biçimdeswitch()işlevi hızla okunması zor hale gelir ve dolayısıyla if-else yapıları üzerindeki temel avantajını kaybeder.31. apply(), lapply(), sapply() ve tapply() işlevleri arasındaki fark nedir?
Bu işlevlerin tümü, bir döngü kullanmadan bir veri yapısı üzerinde yineleme yapmamıza ve her öğeye aynı işlemi uygulamamıza olanak tanırken, girdi ve çıktı türleri ile gerçekleştirdikleri işlev bakımından farklılık gösterir.
apply()—bir data frame, matris veya dizi alır ve bir vektör, liste, matris veya dizi döndürür. Bu işlev satır bazında, sütun bazında veya her ikisine uygulanabilir.lapply()—bir vektör, liste veya data frame alır ve her zaman bir liste döndürür. Girdi olarak data frame verildiğinde, yalnızca sütun bazında uygulanır.sapply()—bir vektör, liste veya data frame alır ve en sadeleştirilmiş veri yapısını döndürür; yani girdi vektörü için vektör, girdi listesi için liste, girdi data frame’i için matris.tapply()—farklı faktörler (yani kategorik veriler) için özet istatistikler hesaplar.32. R’deki kontrol deyimlerini listeleyin ve tanımlayın.
R’de üç grup kontrol deyimi vardır: koşullu deyimler, döngü deyimleri ve atlama (jump) deyimleri.
Koşullu deyimler:
if—belirli bir koşulun doğru olup olmadığını test eder ve doğruysa yapılacak işlemleri sağlar.if-else—belirli bir koşulun doğru olup olmadığını test eder, doğruysa yapılacak işlemleri ve aksi durumda yapılacak başka bir işlem setini sağlar.if... else if... else—bir dizi koşulu tek tek test eder, her koşul doğruysa yapılacak işlemleri ve hiçbir koşul doğru değilse yapılacak yedek işlem setini sağlar.switch—bir ifadeyi bir listedeki öğelere karşı değerlendirir ve bu değerlendirmenin sonucuna göre listeden bir değer döndürür.Döngü deyimleri:
for—for döngülerinde, bir dizi üzerinde yineler.while—while döngülerinde, mevcut yinelemede önceden tanımlı bir mantıksal koşulun (veya birkaç koşulun) sağlanıp sağlanmadığını denetler.repeat—repeat döngülerinde, önceden tanımlı bir kırılma koşulu (veya birkaç koşul) sağlanana kadar aynı işlemleri sürdürür.Atlama (jump) deyimleri:
next—belirli bir koşul sağlandığında bir döngünün belirli bir yinelemesini atlar ve bir sonrakine geçer.break—belirli bir koşul sağlandığında belirli bir yinelemede döngüyü durdurur ve sonlandırır.return—bir fonksiyondan çıkar ve sonucu döndürür.33. Düzenli ifadeler (regular expressions) nedir ve R’de onlarla nasıl çalışılır?
R’de veya diğer programlama dillerinde düzenli ifade (regex), belirli bir metin desenini tanımlayan ve metin verilerini madencilikte kullanılan bir karakter veya karakter dizisidir. R’de düzenli ifadelerle çalışmanın iki ana yolu vardır:
grep(),regexpr(),gsub(),regmatches()vb.) kullanarak regex’leri bulmak, eşleştirmek, çıkarmak ve değiştirmek.R Düzenli İfadelerine Rehber, R’de regex ile nasıl çalışılacağı hakkında daha fazla ayrıntı sağlar.
34. R’de makine öğrenmesi için kullanılan paketler nelerdir?
35. R’de makine öğrenmesi için özellikler (feature) nasıl seçilir?
Üç farklı yaklaşımı ve bunların caret paketinde nasıl uygulanacağını ele alalım.
Tüm özelliklerin bir korelasyon matrisini oluşturmalı ve ardından genellikle korelasyon katsayısı 0,75’ten büyük olan yüksek korelasyonluları belirlemeliyiz:
Eğitimi kontrol edecek bir eğitim şeması oluşturmalı, bunu seçilen bir modeli kurmak için kullanmalı ve ardından o model için değişken önemini tahmin etmeliyiz:
caret tarafından sağlanan en popüler yöntemlerden biri, geri doğru seçim algoritması olan RFE (Recursive Feature Elimination)’dir.
Seçilen bir yeniden örnekleme yöntemi ve önceden tanımlı bir işlev listesi kullanarak kontrolü hesaplamalı, RFE algoritmasını; özellikleri, hedef değişkeni, tutulacak özellik sayısını ve kontrolü ileterek uygulamalı ve ardından seçilen öngörücüleri çıkarmalıyız:
R’de makine öğrenmesi becerilerinizi güçlendirmeniz gerekiyorsa, işte sağlam ve kapsamlı bir kaynak: R ile Makine Öğrenmesi Bilimcisi.
36. Korelasyon ve kovaryans nedir ve R’de nasıl hesaplanır?
Korelasyon, iki değişken arasındaki doğrusal ilişkinin yönü ve gücünün bir ölçüsüdür. -1 (mükemmel negatif korelasyon) ile 1 (mükemmel pozitif korelasyon) arasında değer alır. Kovaryans, iki değişkenin birbirine göre nasıl değiştiğinin derecesi ve aralarındaki doğrusal ilişkinin yönünün bir ölçüsüdür. Korelasyondan farklı olarak kovaryansın bir aralık sınırı yoktur.
R’de, korelasyonu hesaplamak için
cor(), kovaryansı hesaplamak içincov()işlevini kullanmamız gerekir. Her iki işlevin sözdizimi aynıdır: Ölçümü hesaplamak istediğimiz iki değişkeni (vektörü) iletmemiz gerekir (örn.cor(vector_1, vector_2)veyacov(vector_1, vector_2)) ya da tüm değişkenleri arasındaki korelasyonu veya kovaryansı hesaplamak istiyorsak tüm data frame’i (örn.cor(df)veyacov(df)). İki vektör durumunda sonuç tek bir değer olur; data frame durumunda sonuç bir korelasyon (veya kovaryans) matrisi olur.37. R’de model doğruluğunu tahmin etmeye yönelik çeşitli yaklaşımları listeleyin ve tanımlayın.
Aşağıda birkaç yaklaşım ve bunların R’de caret paketiyle nasıl uygulanacağı yer almaktadır.
createDataPartition()işlevini kullanmalı ve p parametresini eğitime gidecek veri oranına ayarlamalıyız.trainControl()işlevininmethodparametresini"boot"olarak ayarlamalıyız.Bu çapraz doğrulama yöntemlerini R’de uygulamak için, modelin eğitim kontrolünü tanımlarken
trainControl()işlevininmethodparametresini sırasıyla"cv","repeatedcv"veya"LOOCV"olarak ayarlamalıyız.38. Ki-kare testi nedir ve R’de nasıl uygulanır?
Ki-kare istatistiksel hipotez testi, iki kategorik değişkenin bağımsız olup olmadığını veya aralarında bir ilişki bulunup bulunmadığını belirlemek için kullanılan bir tekniktir. R’de ki-kare testini uygulamak için stats paketindeki
chisq.test()işlevini kullanmalıyız. Adımlar şunlardır:1. İlgilenilen kategorik değişkenlerle temel R’nin
table()işlevini kullanarak bir çapraz tablo oluşturun:2. Çapraz tabloyu
chisq.test()işlevine iletin:Ki-kare testlerini ve diğer hipotez testlerini bilgilerinizi tazelemek için R’de Hipotez Testi kursumuza göz atabilirsiniz.
39. R’de Shiny nedir?
Shiny, yalnızca R kullanarak, HTML, CSS veya JavaScript bilgisi gerektirmeden, veri bilimi için tamamen etkileşimli web uygulamaları ve web sayfaları oluşturmayı kolay ve hızlı hale getiren, açık kaynaklı bir R paketidir. R’de Shiny; çok sayıda temel ve gelişmiş özellik, bileşen, yerleşim, web uygulama örnekleri ve üzerine inşa edip özelleştirilebilecek temel kodlar ile Shiny uygulama geliştirici topluluğu tarafından toplanıp kategorize edilen çeşitli alanlardan (teknoloji, spor, bankacılık, eğitim vb.) kullanıcı vitrinleri sunar.
40. with() ve within() işlevleri arasındaki fark nedir?
with()işlevi, bir data frame’in bir veya daha fazla değişkeni üzerinde bir R ifadesini değerlendirir ve sonucu data frame’i değiştirmeden çıktılar.within()işlevi ise bir data frame’in bir veya daha fazla değişkeni üzerinde bir R ifadesini değerlendirir, data frame’i değiştirir ve sonucu çıktılar. Aşağıda bu işlevlerin bir örnek data frame üzerinden nasıl çalıştığını görebiliriz:Çıktı:
within()işlevini kullanırken, yapılan değişiklikleri kaydetmek için işlevin çıktısını bir değişkene atamamız gerekir.Sonuç
Sonuç olarak, bu makalede en yaygın 40 R programlama mülakat sorusunu ve her biri için beklenen yanıtları ele aldık. Umarız bu bilgilerle, ister R alanında bir iş arıyor olun ister şirketinizdeki açık bir pozisyon için doğru adayı arıyor olun, başarılı bir R mülakatına daha hazır ve kendinizden emin hissedersiniz.
Soruları yanıtlama konusunda pratik yapmak için R ile İstatistik Mülakat Sorularını Pratik Etme kursumuza göz atın.