Dosyalarla Çalışma
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 1 / 57.
Gerçek programlar birkaç dosyaya bölünür. R'de source("Greeting.R") başka bir dosyayı baştan sona çalıştırır ve bu dosyanın tanımladığı tüm işlevler sonrasında kullanılabilir:
# Greeting.R
greeting <- function(name) {
paste0("Hello, ", name, "!")
}
# main.R
source("Greeting.R")
cat(greeting("Ada"), "\n")main.R çalıştırıldığında Hello, Ada! yazdırılır: source() satırı, main.R onu çağırmadan önce greeting() işlevini yükler.
Program, çalıştırdığınız dosyada başlar; burada main.R dosyasında ve R dosyayı satır satır okur. Sıra önemlidir: bir işlev yalnızca onu tanımlayan dosya kaynak olarak yüklendikten sonra kullanılabilir, bu yüzden source() satırları en üste yazılır:
# main.R
cat(greeting("Ada"), "\n") # Hata: "greeting" fonksiyonu bulunamadı
source("Greeting.R")
cat(greeting("Ada"), "\n") # çalışıyor: greeting() artık mevcutGenel düzen, sınıf başına bir dosya olacak ve dosya sınıfın adını taşıyacak şekildedir: Account.R, account kurucusunu ve yöntemlerini; Shape.R ise shape genel işlevlerini içerir. Bu bölümdeki alıştırmalarda kodunuzu bu dosyalara yazarsınız; main.R ise sağlanan girdi/çıktı kodunu içerir ve source() satırları en üstte, doğru sırada zaten bulunur. Düzenleyicide her dosya bir sekme olarak gösterilir.
Shape.R # tüm şekillerin paylaştığı genel fonksiyonlar: önce bunu source ile yükleyin
Circle.R # daire sınıfı ve metotları
main.R # source("Shape.R"); source("Circle.R"); girdiyi okur, sonuçları yazdırırsource() bir dosyayı global ortamda çalıştırır; böylece dosyadaki işlevler ve değişkenler global adlar hâline gelir. R'de dosyaya özel adlar yoktur: iki dosya da helper() tanımlarsa, en son kaynak olarak yüklenen dosyanın tanımı geçerli olur. Kaynak olarak yüklenen bir dosyada tek başına bir satırda bulunan değer de yazdırılmaz; bu nedenle bir şey göstermesi gereken dosyalar cat() çağırır:
# Tools.R
total <- 0 # source() ile yüklendikten sonra genel bir değişken
42 # source() tarafından yazdırılmaz
helper <- function(x) x * 2
# Other.R
helper <- function(x) x + 1 # daha sonra source() ile yüklenir: yukarıdaki helper işlevinin yerini alırGörev
KolayProgram iki dosyadan oluşuyor. main.R, Greeting.R dosyasını kaynak olarak alır, adları okur ve her biri için greeting(name) sonucunu yazdırır. Ada adı için Hello, Ada!, ad boş olduğunda ise Hello, friend! döndürmesi için Greeting.R içindeki greeting() işlevini tamamla.
Kodunu Greeting.R dosyasına yaz. main.R, sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.
Kendin dene
source("Greeting.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
for (name in input) cat(greeting(name), "\n", sep = "")
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Tabanlı Programlama bölümündeki tüm dersler
1S3 Temelleri
Dosyalarla ÇalışmaSınıf ile ListelerYapıcı FonksiyonlarPrint ve Format MetotlarıDoğrulayıcılar ve YardımcılarTekrar - Sıcaklıklar4R'da Kapsülleme
Nesne Olarak Closure'larNesne Olarak OrtamlarErişimci FonksiyonlarDurumu KorumaÖzet - Parkmetre2S3 Generic'leri ve Metotları
Generic'ler ve UseMethodVarsayılan MetotlarTemel Generic'ler için MetotlarNextMethod TemelleriTekrar - Şekil Alanları5S4 Sınıfları
S4 Sınıflarını TanımlamaSlotlar ve ErişimGeçerlilik KontrolleriShow MetotlarıÖzet - Ürün Kataloğu8Referans Sınıfları
Referans Sınıflarını TanımlamaMetotlar ve Alan GüncellemeleriKopyalama SemantiğiKalıtım ve callSuperÖzet - Görev Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Online R derleyicisi