0Pricing
R Academy · Ders

Verileri Birden Fazla Biçimde Yazma

write_csv() ve writexl ile veri çerçevelerini CSV, Excel ve RDS biçimlerine dışa aktarın.

Verileri Birden Fazla Biçimde Yazma, 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'den Veri Yazma

Verileri okumak işin yalnızca yarısıdır — sonuçları da kaydetmeniz gerekir. R birden çok çıktı biçimini destekler: genel uyumluluk için CSV, R nesnelerini tam olarak korumak için RDS, yüksek performanslı analiz için Parquet ve daha fazlası. Biçimi hedef kitlenize ve kullanım amacınıza göre seçin.

library(readr)

# Create a sample data frame to write
df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85.5, 92.0, 78.3),
  grade = c('B','A','C'),
  passed = c(TRUE, TRUE, TRUE)
)

print(df)
cat('\nWe will save this in multiple formats!')

write_csv() — CSV Olarak Kaydetme

write_csv(df, 'file.csv') bir veri çerçevesini virgülle ayrılmış bir dosya olarak kaydeder. Varsayılan olarak satır adlarını yazmaz (write.csv() işlevinden farklı olarak). Sonuç her zaman UTF-8 ile kodlanır. Veri çerçevesini görünmez biçimde döndürdüğünden işlem hatlarında kullanılabilir.

library(readr)

df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85, 92, 78)
)

# Write to /tmp for demonstration
write_csv(df, '/tmp/students.csv')

# Verify by reading back
read_csv('/tmp/students.csv', show_col_types=FALSE)

write_csv() Seçenekleri

write_csv() çeşitli seçenekleri kabul eder: na='NA', NA değerlerinin nasıl yazılacağını belirler; append=TRUE, mevcut bir dosyaya ekleme yapar; col_names=FALSE, başlığı dışarıda bırakır; quote ise alanların ne zaman tırnak içine alınacağını belirler.

library(readr)

df <- data.frame(
  name = c('Alice','Bob'),
  city = c('New York','Los,Angeles'),  # Contains comma
  score = c(85, NA)
)

# na='' writes NA as empty string (common Excel convention)
write_csv(df, '/tmp/test_write.csv', na='')
cat(paste(read_lines('/tmp/test_write.csv'), collapse='\n'))

write_tsv() — Sekmeyle Ayrılmış Çıktı

write_tsv(df, 'file.tsv') verileri sekmelerle ayrılmış biçimde kaydeder. Veriler virgül içerdiğinde veya sonraki sistem TSV beklediğinde bu biçim tercih edilir. write_csv() ile aynı seçeneklere sahiptir.

library(readr)

df <- data.frame(
  address = c('123 Main St, NYC','456 Oak Ave, LA'),
  score = c(85, 92)
)

# TSV avoids delimiter conflict with commas in addresses
write_tsv(df, '/tmp/addresses.tsv')
cat(paste(read_lines('/tmp/addresses.tsv'), collapse='\n'))

saveRDS() — Herhangi Bir R Nesnesini Kaydetme

saveRDS(obj, 'file.rds'), herhangi bir R nesnesini R'nin yerel ikili biçiminde diske serileştirir. readRDS('file.rds') nesneyi sütun türlerini, faktörleri, öznitelikleri ve hatta model nesnelerini koruyarak tam olarak geri yükler. İnsan tarafından okunamaz; ancak R oturumları arasında tamamen taşınabilirdir.

library(readr)

df <- data.frame(
  name = c('Alice','Bob'),
  score = c(85.5, 92.0),
  grade = factor(c('B','A'), levels=c('A','B','C','D'))
)

# Save with full type preservation
saveRDS(df, '/tmp/students.rds')

# Restore exactly
df2 <- readRDS('/tmp/students.rds')
print(df2)
print(class(df2$grade))  # factor — preserved!

saveRDS() ve save() — Temel Fark

saveRDS(obj, 'file.rds') tek bir nesneyi adı olmadan kaydeder. readRDS() ile bu nesneye istediğiniz adı verebilirsiniz. save(obj1, obj2, 'file.RData') birden çok adlandırılmış nesneyi kaydeder; load() bunları özgün adlarıyla geri yükler (mevcut değişkenlerin üzerine yazabilir).

# saveRDS: single object, flexible on load
model <- lm(mpg ~ wt, data=mtcars)
saveRDS(model, '/tmp/my_model.rds')
best_model <- readRDS('/tmp/my_model.rds')  # Any name!
cat('R-squared:', round(summary(best_model)$r.squared, 3), '\n')

# save: multiple named objects, fixed names on load
# save(model, mtcars, file='/tmp/workspace.RData')
# load('/tmp/workspace.RData')  # Restores 'model' and 'mtcars'

write_delim() — Özel Ayırıcı

write_delim(df, file, delim='|') verileri istediğiniz ayırıcıyla yazar. Sonraki sistem dikey çizgiyle ayrılmış veya başka standart dışı biçimler beklediğinde bunu kullanın. write_csv() ile aynı veri kalitesi güvenceleri geçerlidir.

library(readr)

df <- data.frame(
  id = 1:3,
  name = c('Alice','Bob','Carol'),
  value = c(100, 200, 150)
)

# Write pipe-delimited
write_delim(df, '/tmp/data.psv', delim='|')
cat(paste(read_lines('/tmp/data.psv'), collapse='\n'))

writexl ile Excel Çıktısı

writexl paketi (readxl paketinin tamamlayıcısı), veri çerçevelerini .xlsx biçiminde yazar: writexl::write_xlsx(df, 'file.xlsx'). Birden çok sayfa için adlandırılmış bir liste aktarın. Java veya Excel kurulumu gerekmez.

# writexl::write_xlsx() — example (library not always available)
# library(writexl)

df1 <- data.frame(name=c('Alice','Bob'), score=c(85,92))
df2 <- data.frame(region=c('East','West'), sales=c(100,200))

# Single sheet:
# write_xlsx(df1, '/tmp/students.xlsx')

# Multiple sheets (named list):
# write_xlsx(
#   list(students=df1, sales=df2),
#   '/tmp/report.xlsx'
# )

cat('writexl writes pure .xlsx without Java or Excel!')

arrow ile Parquet Dosyaları

Apache Parquet, büyük veri kümeleri için ideal sütunlu bir depolama biçimidir: iyi sıkıştırılır ve sütun odaklı sorgularda CSV'den çok daha hızlı okunur. arrow paketi write_parquet() ve read_parquet() işlevlerini sağlar.

# arrow::write_parquet() concept
# library(arrow)

# Large CSV -> Parquet (10-100x smaller, 10-100x faster reads)
# df <- read_csv('big_file.csv')
# write_parquet(df, 'big_file.parquet')
# df_back <- read_parquet('big_file.parquet')

# Parquet benefits:
# - Columnar: only reads columns you need
# - Compressed: ~10x smaller than CSV
# - Typed: no type re-guessing on read
# - Partitioned: split by date/region for parallel reads

cat('Parquet is the modern standard for large-scale analytics in R!')

İşlem Hattında Veri Yazma

Hem write_csv() hem de saveRDS() girdilerini görünmez biçimde döndürür; böylece akışı bozmadan bir işlem hattı içinde kullanılabilirler. Yeniden üretilebilirlik için işlem hattının ortasına bir denetim noktası olarak write_csv() ile yazma adımı ekleyin.

library(readr)
library(dplyr)

# Write mid-pipeline as a checkpoint
final_result <- data.frame(
  region=c('East','West','North'),
  sales=c(100,200,80)
) %>%
  mutate(pct = round(100*sales/sum(sales),1)) %>%
  {. ->> checkpoint_df; .} %>%  # Save checkpoint
  filter(sales > 90)

write_csv(checkpoint_df, '/tmp/checkpoint.csv')
print(final_result)

Biçim Seçim Rehberi

Doğru çıktı biçimini seçmek hedefinize bağlıdır:

  • CSV/TSV: evrensel, insanlar tarafından okunabilir, herkes açabilir
  • RDS: R'den R'ye, tüm türleri ve öznitelikleri tam olarak korur
  • xlsx: iş kullanıcıları ve Excel kullanıcıları
  • Parquet: büyük veriler, analiz işlem hatları ve üretim sistemleri
  • JSON: API'ler, iç içe/hiyerarşik veriler (jsonlite::toJSON())
library(readr)

df <- data.frame(
  id = 1:5,
  value = c(10.5, 20.3, 15.7, 30.1, 25.8)
)

# CSV — universal
write_csv(df, '/tmp/data.csv')

# TSV — when commas are in data
write_tsv(df, '/tmp/data.tsv')

# RDS — R-native, type-preserving
saveRDS(df, '/tmp/data.rds')

cat('Files created:\n')
cat('CSV size:', file.size('/tmp/data.csv'), 'bytes\n')
cat('RDS size:', file.size('/tmp/data.rds'), 'bytes\n')

Hızlı Kontrol

R verilerini kaydederken saveRDS() işlevinin write_csv() karşısındaki temel avantajı nedir?

Özet: Veri Yazma

R'den veri yazma için temel çıkarımlar:

  • write_csv(df, 'file.csv') — virgülle ayrılmış, satır adı yok, UTF-8
  • write_tsv(df, 'file.tsv') — sekmeyle ayrılmış çıktı
  • write_delim(df, file, delim='|') — herhangi bir ayırıcı
  • saveRDS(obj, 'file.rds') — ikili R biçimi, tüm türleri korur
  • readRDS('file.rds') — herhangi bir adla geri yükler; load() özgün adları geri yükler
  • writexl::write_xlsx() — Excel çıktısı, Java gerekmez
  • arrow::write_parquet() — büyük analitik veri kümeleri için sütunlu biçim
library(readr)

df <- data.frame(
  name = c('Alice','Bob','Carol'),
  score = c(85.5, 92.0, 78.3),
  grade = factor(c('B','A','C'))
)

# CSV: universal but loses factor
write_csv(df, '/tmp/demo.csv')
df_csv <- read_csv('/tmp/demo.csv', show_col_types=FALSE)
cat('CSV grade type:', class(df_csv$grade), '\n')  # character

# RDS: preserves factor
saveRDS(df, '/tmp/demo.rds')
df_rds <- readRDS('/tmp/demo.rds')
cat('RDS grade type:', class(df_rds$grade))  # factor

Sıkça Sorulan Sorular

“Verileri Birden Fazla Biçimde Yazma” dersi ücretsiz mi?

Evet — “Verileri Birden Fazla Biçimde Yazma” 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.

“Verileri Birden Fazla Biçimde Yazma” dersinde ne öğreneceğim?

write_csv() ve writexl ile veri çerçevelerini CSV, Excel ve RDS biçimlerine dışa aktarı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 4. dersidir.

“Verileri Birden Fazla Biçimde Yazma” 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. read_csv() ile CSV Dosyalarını Okuma
  2. TSV ve Sabit Genişlikta Dosyaları Ayrıştırma
  3. readxl ile Excel Dosyalarını İçe Aktarma
  4. Verileri Birden Fazla Biçimde Yazma
← R Academy Sayfasına Dön