Betikleri Yüklemek için source() Kullanımı
Harici R betiklerini çalıştırın ve source() ile kodu dosyalar arasında paylaşın.
Betikleri Yüklemek için source() Kullanımı, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 1. 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.
source() Neden Kullanılır?
R projeleriniz büyüdükçe tüm kodu tek bir dosyada tutmak yönetilemez hâle gelir. source() işlevi, harici bir R betik dosyasını yükleyip çalıştırmanıza ve çalışmanızı mantıksal, yeniden kullanılabilir modüllere ayırmanıza olanak tanır.
Bu, düzenli R geliştirmenin temelidir.
# Imagine helpers.R contains:
# add <- function(a, b) a + b
# multiply <- function(a, b) a * b
# Load it into your main script:
source('helpers.R')
# Now use the functions defined there:
result <- add(3, 5)
cat('Result:', result)Temel source() Söz Dizimi
source() işlevinin en basit biçimi, tek bağımsız değişken olarak bir dosya yolu alır. Dosya okunur ve içindeki her ifade, kodu doğrudan siz yazmışsınız gibi geçerli ortamda değerlendirilir.
# source() with a relative path (file in working directory)
source('my_functions.R')
# source() with an absolute path
source('/Users/alice/projects/utils.R')
# After sourcing, all objects and functions defined
# in the file are available in your current session
cat('Script loaded successfully')echo Parametresi
echo parametresi, kaynak dosyadaki her ifadenin çalıştırılırken konsola yazdırılıp yazdırılmayacağını denetler. Varsayılan olarak echo = FALSE olur ve konsolunuz temiz kalır. Bunu TRUE olarak ayarlamak hata ayıklama için yararlıdır.
# Default: silent loading (echo = FALSE)
source('helpers.R')
# Verbose: print each expression as it runs
source('helpers.R', echo = TRUE)
# echo = TRUE output looks like:
# > add <- function(a, b) a + b
# > multiply <- function(a, b) a * b
cat('Done')print.eval ve verbose
İki parametre daha çıktı üzerinde daha hassas denetim sağlar. print.eval, ifadelerin sonuçlarının yazdırılıp yazdırılmayacağını denetler (etkileşimli moda benzer). verbose ise kaynak yükleme süreci hakkında ek bilgiler yazdırır.
# print.eval: print the VALUE of each expression
source('helpers.R', echo = TRUE, print.eval = TRUE)
# verbose: extra details like file name and line numbers
source('helpers.R', verbose = TRUE)
# Typical use: debugging a complex script
# source('complex_analysis.R', echo = TRUE, print.eval = TRUE)
cat('Parameters explored')local Parametresi — Yalıtılmış Kapsam
Varsayılan olarak source(), kodu global ortamda çalıştırır; bu nedenle oluşturulan tüm nesneler çalışma alanınızda görünür. local = TRUE ayarı, betiği yeni ve yalıtılmış bir ortamda çalıştırarak global çalışma alanınızı temiz tutar.
# Without local: objects pollute global env
source('data_prep.R') # x, y, temp_df all appear in ls()
# With local = TRUE: objects stay inside
source('data_prep.R', local = TRUE)
# x, y, temp_df are NOT in your global workspace
# Verify nothing leaked:
cat('Objects in workspace:', length(ls()))
# local can also be an environment object:
my_env <- new.env()
source('data_prep.R', local = my_env)Daha Güvenli Yükleme için sys.source()
sys.source(), source() işlevine kıyasla ek yükün bir kısmını atlayan daha alt düzeyli bir alternatiftir. Çalışma dizinini değiştirmez ve keepSource seçeneklerini değerlendirmez. Genellikle paket geliştirme ve dahili araçlarda kullanılır.
# sys.source() loads a file into a specific environment
utils_env <- new.env()
sys.source('utils.R', envir = utils_env)
# Access functions from that environment explicitly
result <- utils_env$my_helper(10)
cat('Result:', result)
# sys.source does not echo or verbose options
# It is faster and more predictable for package internals
cat('sys.source demo complete')Göreli ve Mutlak Yollar
source() içinde göreli yolları kullanmak projenizi taşınabilir hâle getirir; dosya yolu geçerli çalışma dizinine göre çözümlenir. Mutlak yollar her yerde çalışır, ancak projeyi taşıdığınızda bozulur. Proje tabanlı iş akışlarında göreli yolları tercih edin.
# Relative path — resolved from getwd()
source('R/helpers.R') # good for projects
source('scripts/utils.R') # subfolder
source('../shared/common.R') # parent folder
# Absolute path — fragile, machine-specific
source('/Users/alice/project/R/helpers.R')
# Check current working directory first:
cat('Working dir:', getwd())
# Best practice: use file.path() for clarity
source(file.path('R', 'helpers.R'))Birden Fazla Dosyayı Kaynak Olarak Yükleme
Birden fazla yardımcı dosyayı yüklemek için source() işlevini birden çok kez çağırabilirsiniz. Yaygın bir yaklaşım, gereken tüm modülleri doğru sırayla kaynak olarak yükleyen tek bir setup.R veya _targets.R giriş noktası bulundurmaktır.
# main.R — entry point that loads all modules
source('R/data_loading.R')
source('R/cleaning.R')
source('R/analysis.R')
source('R/plotting.R')
# Or source all .R files in a directory:
r_files <- list.files('R', pattern = '\\.R$', full.names = TRUE)
for (f in r_files) {
source(f)
cat('Loaded:', f, '\n')
}
cat('All modules loaded')chdir ile source()
chdir parametresi, çalışırken çalışma dizinini geçici olarak kaynak olarak yüklenen dosyayı içeren dizine değiştirir. Bu, yardımcı bir betik kendi içinde göreli yollar kullanıyorsa yararlıdır.
# Suppose scripts/analysis.R uses source('helpers.R')
# and helpers.R is also in scripts/
# Without chdir: R looks for helpers.R in YOUR working dir
source('scripts/analysis.R') # may fail
# With chdir = TRUE: working dir shifts to scripts/ temporarily
source('scripts/analysis.R', chdir = TRUE) # helpers.R found!
# After source() returns, working dir goes back to original
cat('Working dir restored:', getwd()).Rprofile ile Başlangıçta Kaynak Olarak Yükleme
Ev dizininizdeki (veya proje kökündeki) .Rprofile dosyası, R her başlatıldığında otomatik olarak çalışır. Yardımcı programları otomatik olarak yüklemek, seçenekleri ayarlamak veya her oturum başlangıcında paketleri eklemek için içinde source() kullanabilirsiniz.
# .Rprofile (in ~ or project root):
# source('~/.R/my_utils.R') # load personal helpers
# options(scipen = 999) # no scientific notation
# To open and edit .Rprofile:
file.edit('~/.Rprofile')
# To see where .Rprofile files are looked for:
cat(Sys.getenv('R_PROFILE_USER'))
# Caution: heavy .Rprofile slows R startup
# Keep it minimal — load only what you always need
cat('.Rprofile concept shown')Uygulamada source() — Proje Deseni
Temiz ve gerçek dünyada kullanılan bir yaklaşım, projenizi tüm yardımcı betikler için bir R/ klasörü ve bunları kaynak olarak yükleyen tek bir run.R veya main.R ile düzenlemektir. Bu, projenin yeniden üretilmesini ve paylaşılmasını kolaylaştırır.
# Project structure:
# my_project/
# run.R <- entry point
# R/
# 01_load.R <- data loading
# 02_clean.R <- data cleaning
# 03_model.R <- modeling
# 04_report.R <- output
# run.R content:
cat('=== Starting analysis ===\n')
source('R/01_load.R')
source('R/02_clean.R')
source('R/03_model.R')
source('R/04_report.R')
cat('=== Analysis complete ===\n')Hızlı Kontrol
Kaynak olarak yüklenen dosyada oluşturulan nesnelerin global ortamda görünmesini hangi source() parametresi engeller?
source() — Temel Çıkarımlar
source(), R'nin kodu modüllere ayırmak için yerleşik yöntemidir:
source('file.R')— bir betiği global ortamda yükleyip çalıştırırecho = TRUE— her ifadeyi yazdırır (hata ayıklama için idealdir)local = TRUE— yalıtılmış olarak çalıştırır, global yan etkiler oluşturmazchdir = TRUE— çalışma dizinini geçici olarak dosyanın konumuna taşırsys.source()— paketlerde kullanılan alt düzeyli alternatiftir- Taşınabilirlik için göreli yolları ve proje tabanlı iş akışlarını tercih edin
- R başlangıcında yardımcı dosyaları otomatik olarak kaynak olarak yüklemek için
.Rprofilekullanın
# Quick reference
source('R/helpers.R') # basic load
source('R/helpers.R', echo = TRUE) # verbose
source('R/helpers.R', local = TRUE) # isolated
source('scripts/run.R', chdir = TRUE) # local paths
env <- new.env()
sys.source('R/helpers.R', envir = env) # low-level
cat('source() mastered!')Sıkça Sorulan Sorular
“Betikleri Yüklemek için source() Kullanımı” dersi ücretsiz mi?
Evet — “Betikleri Yüklemek için source() Kullanımı” 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.
“Betikleri Yüklemek için source() Kullanımı” dersinde ne öğreneceğim?
Harici R betiklerini çalıştırın ve source() ile kodu dosyalar arasında paylaşın. 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 1. dersidir.
“Betikleri Yüklemek için source() Kullanımı” 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
- Betikleri Yüklemek için source() Kullanımı
- Açıklamalar, Stil ve Okunabilirlik
- Çalışma Dizinleri ve Dosya Yolları
- R Projeleri ve Çalışma Alanı Yönetimi