R Academy · Ders

R Projeleri ve Çalışma Alanı Yönetimi

RStudio projeleri oluşturun ve .RData, .Rhistory ve .Renviron dosyalarını yönetin.

4. ders / 413 adım

R Projeleri ve Çalışma Alanı Yönetimi, 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.

R Çalışma Alanı: .RData ve .Rhistory

Varsayılan olarak R'den çıktığınızda, R bellekteki tüm nesnelerden oluşan çalışma alanını çalışma dizinindeki .RData adlı gizli dosyaya kaydetmek isteyip istemediğinizi sorar. Komut geçmişiniz .Rhistory dosyasına yazılır. Bu dosyalar bir sonraki oturumda otomatik olarak yüklenir.

Bu kolaylık, yeniden üretilebilirlik açısından aynı zamanda bir tuzaktır.

# .RData: binary snapshot of all objects in the global environment
# .Rhistory: text file of every command you typed

# See what would be saved right now:
cat('Objects that would be saved:', length(ls()), '\n')
cat('Their names:', paste(ls(), collapse = ', '))

# Workspace saving is controlled by:
# Tools -> Global Options -> General -> Save workspace (NEVER recommended)
# Or at startup: R --no-save --no-restore

.RData Dosyasını Otomatik Kaydetmekten Neden Kaçınmalısınız?

.RData dosyasına güvenmek, sonuçlarınızın sıfırdan yeniden üretilemeyeceği anlamına gelir. Nesneler oturumlar boyunca fark edilmeden birikir, eski değişkenler yenilerini gölgeler ve birlikte çalıştığınız kişiler ortamınızı yeniden oluşturamaz. Çözüm: çalışma alanını hiçbir zaman kaydetmeyin — betiklerinizi çalıştırarak her zaman yeniden oluşturun.

# The recommended R startup setting (in RStudio):
# Tools -> Global Options -> General
#   Restore .RData at startup: UNCHECKED
#   Save workspace on exit: NEVER

# This forces you to write scripts that are fully self-contained.
# A fresh session that runs cleanly = reproducible analysis.

# Equivalent command-line flags:
# R --no-save --no-restore

cat('Always start fresh!')

rm() — Çalışma Alanını Temizleme

rm(list = ls()), R'yi yeniden başlatmadan yeni bir oturumu taklit ederek genel ortamdan tüm nesneleri kaldırmanın standart yoludur. Her çalıştırmada temiz bir başlangıç sağlamak için genellikle bir betiğin en üstüne yerleştirilir.

# Create some objects
a <- 1
b <- 'hello'
df <- data.frame(x = 1:3)

cat('Before rm:', length(ls()), 'objects\n')

# Remove specific objects
rm(a, b)
cat('After rm(a,b):', length(ls()), 'objects\n')

# Remove ALL objects in global environment
rm(list = ls())
cat('After rm(list=ls()):', length(ls()), 'objects')

options() — Genel Oturum Ayarları

options(), R oturumu genelindeki birçok davranışı denetler. En sık ayarlanan iki seçenek scipen (bilimsel gösterim cezası) ve digits (yazdırılan anlamlı basamak sayısı) seçenekleridir. Tutarlı çıktı elde etmek için bunları betiklerin en üstünde ayarlayın.

# Default behavior:
cat(0.000123456, '\n')    # may show 1.23456e-04

# Suppress scientific notation (positive scipen = prefer fixed)
options(scipen = 999)
cat(0.000123456, '\n')    # now shows 0.000123456

# Control printed digits
options(digits = 4)
cat(pi, '\n')              # 3.142

# Check current options:
cat('scipen:', getOption('scipen'), '\n')
cat('digits:', getOption('digits'))

.Renviron — Ortam Değişkenleri

.Renviron dosyası, R'nin başlangıçta yüklediği ortam değişkenlerini saklar. API anahtarları, veritabanı parolaları ve dosya sistemi yolları gibi gizli bilgiler ve yapılandırma değerleri için doğru yerdir; böylece bunları kaynak kodunuzun dışında tutabilirsiniz.

# .Renviron file (in ~ or project root):
# DATABASE_URL=postgres://user:pass@host/db
# OPENAI_API_KEY=sk-abc123
# DATA_ROOT=/data/shared

# Read in R:
db_url <- Sys.getenv('DATABASE_URL')
api_key <- Sys.getenv('OPENAI_API_KEY', unset = 'KEY_NOT_SET')

cat('DB URL set:', nchar(db_url) > 0, '\n')
cat('API key:', api_key)

# To edit .Renviron:
# usethis::edit_r_environ()   <- if usethis is installed
# file.edit('~/.Renviron')    <- base R

saveRDS() — Tek Bir Nesneyi Kaydetme

saveRDS(), tek bir R nesnesini bir .rds dosyasına serileştirir. Dosya tam olarak tek bir nesne sakladığından ve neyi kaydedip yükleyeceğinizi tam olarak denetleyebildiğinizden, maliyetli hesaplama sonuçlarını önbelleğe almak için tercih edilen yoldur.

# Create an object to save
result_list <- list(
  model   = 'linear_regression',
  r2      = 0.87,
  rmse    = 12.4,
  created = Sys.time()
)

# Save to disk
tmp_rds <- tempfile(fileext = '.rds')
saveRDS(result_list, file = tmp_rds)
cat('Saved to:', tmp_rds, '\n')

# Load it back (even in a fresh session)
loaded <- readRDS(tmp_rds)
cat('R-squared:', loaded$r2)

readRDS() — Tek Bir Nesneyi Geri Yükleme

readRDS(), bir .rds dosyasını yeniden bir R nesnesine dönüştürür. load() işlevinden farklı olarak, döndürülen değer bir ada atanmalıdır; böylece aynı dosyayı kodunuzun farklı bölümlerinde farklı adlarla yükleyebilirsiniz.

# Suppose model_results.rds was saved earlier
tmp <- tempfile(fileext = '.rds')
saveRDS(list(coef = c(1.2, 3.4), n = 100), tmp)

# Load with a meaningful name:
model_output <- readRDS(tmp)
cat('Coefficients:', model_output$coef, '\n')
cat('Sample size:', model_output$n, '\n')

# Key advantage over load():
# With load(), the name is baked into the file.
# With readRDS(), YOU choose the name on load.
cat('readRDS gives you naming control')

save() ve load() — Birden Çok Nesne

save(), adlandırılmış bir veya daha fazla nesneyi bir .RData dosyasına serileştirir. load() bunları geri yükler; ancak özgün adlar otomatik olarak geri yüklendiği için mevcut nesnelerin üzerine sessizce yazabilir. Dikkatli kullanın.

# Save multiple objects at once
scores <- c(85, 92, 78)
labels <- c('Alice', 'Bob', 'Carol')

tmp_rdata <- tempfile(fileext = '.RData')
save(scores, labels, file = tmp_rdata)
cat('Saved to:', tmp_rdata, '\n')

# Remove originals to simulate a new session
rm(scores, labels)
cat('Removed. Objects now:', length(ls()), '\n')

# Load restores original names automatically
load(tmp_rdata)
cat('Restored scores:', scores)

saveRDS ve save — Hangisi Ne Zaman Kullanılır?

Yükleme sırasında adlandırmayı tam olarak denetlemek istediğiniz tek nesneler için saveRDS() kullanın; bu, model çıktıları, işlenmiş veri kümeleri ve önbelleğe alınmış sonuçlar için idealdir. Birlikte çalıştığınız belirli bir kişinin iş akışı için birden çok adlandırılmış nesneyi tek bir paket hâlinde saklamanız gerektiğinde yalnızca save() kullanın.

# saveRDS: one object, you name it on load
# saveRDS(my_model, 'outputs/model_v2.rds')
# m <- readRDS('outputs/model_v2.rds')  <- your name choice

# save: multiple objects, names fixed in the file
# save(model, validation_df, file = 'outputs/session.RData')
# load('outputs/session.RData')  <- restores 'model' and 'validation_df'

# Practical rule:
# saveRDS for caching single results
# save for snapshots shared between collaborators

cat('saveRDS is usually the better choice')

options() Seçeneklerini Denetleme ve Geri Yükleme

Bir oturum sırasında ayarlanan seçenekler yalnızca o oturum boyunca geçerlidir. Betiğinizin kendi kendine yeterli olmasını sağlamak için ihtiyaç duyduğunuz seçenekleri en üstte ayarlayın ve (isteğe bağlı olarak) betiğiniz tamamlandığında eski değerleri on.exit() kullanarak geri yükleyin.

# Capture current options before changing
old_options <- options(scipen = 999, digits = 3)

# Use on.exit to restore them no matter what
on.exit(options(old_options), add = TRUE)

# Now do your work
cat(pi, '\n')           # 3.14
cat(1234567.89, '\n')   # 1234568 (no sci notation)

# When function or script exits, options are restored automatically
cat('Options will restore on exit')

Çalışma Alanı Yönetimi için RStudio Projeleri

Bir RStudio Projesi (.Rproj dosyası), çalışma dizinini otomatik olarak projenin kök dizinine ayarlar, her proje için ayrı bir .Rhistory tutar ve oturum seçeneklerini yalıtır. Kendi kendine yeterli R projelerini yönetmenin standart yolu budur.

# When you open a .Rproj file, RStudio automatically:
# 1. Sets working directory to the project root
# 2. Loads the project-specific .Rhistory
# 3. Optionally restores project .RData

# Best practice for new projects:
# File -> New Project -> New Directory -> New Project

# Your project structure then looks like:
# my_project/
#   my_project.Rproj
#   .Rprofile        (project-level options)
#   .Renviron        (project-level env vars)
#   R/               (scripts)
#   data/            (raw data)
#   output/          (results)

cat('RStudio Projects = clean workspaces')

Hızlı Kontrol

clean_data adlı tek bir R veri çerçevesini diske kaydetmek ve başka bir betikte seçtiğiniz herhangi bir değişken adıyla yeniden yüklemek istiyorsunuz. Hangi işlevi kullanmalısınız?

Çalışma Alanı Yönetimi — Önemli Noktalar

İyi yönetilen bir R çalışma alanı, yeniden üretilebilir analizin temelidir:

  • .RData / .Rhistory — otomatik kaydedilen çalışma alanı dosyaları (otomatik kaydetmeyi devre dışı bırakın!)
  • rm(list = ls()) — temiz bir başlangıç için tüm nesneleri temizler
  • options(scipen = 999, digits = 4) — sayı biçimlendirmesini denetler
  • .Renviron — API anahtarlarını ve yolları ortam değişkenleri olarak saklar
  • saveRDS(obj, 'file.rds') — tek bir nesneyi önbelleğe alır
  • readRDS('file.rds') — kendi adınızla geri yükler
  • save(a, b, file = 'session.RData') — birden çok nesneyi paket hâlinde saklar
  • load('session.RData') — pakete alınmış tüm nesneleri geri yükler
  • Çalışma dizini yönetimini otomatikleştirmek için RStudio Projelerini kullanın
# Typical script header for clean, reproducible analysis:
rm(list = ls())                         # clean workspace
options(scipen = 999, digits = 4)       # formatting

# Load secrets from .Renviron:
db_url <- Sys.getenv('DATABASE_URL')

# Load cached data if available:
cache_file <- file.path('cache', 'processed_data.rds')
if (file.exists(cache_file)) {
  df <- readRDS(cache_file)
  cat('Loaded from cache\n')
} else {
  cat('Cache not found, run data_prep.R first\n')
}

cat('Workspace ready')
Başlamak ücretsiz

Yapay zeka eğitmeniyle R öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
43
Dersler
159

Sıkça Sorulan Sorular

“R Projeleri ve Çalışma Alanı Yönetimi” dersi ücretsiz mi?

Evet — “R Projeleri ve Çalışma Alanı Yönetimi” 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.

“R Projeleri ve Çalışma Alanı Yönetimi” dersinde ne öğreneceğim?

RStudio projeleri oluşturun ve .RData, .Rhistory ve .Renviron dosyalarını yönetin. 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.

“R Projeleri ve Çalışma Alanı Yönetimi” 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. Betikleri Yüklemek için source() Kullanımı
  2. Açıklamalar, Stil ve Okunabilirlik
  3. Çalışma Dizinleri ve Dosya Yolları
  4. R Projeleri ve Çalışma Alanı Yönetimi
← R Academy Sayfasına Dön