read_csv() ile CSV Dosyalarını Okuma
Sınırlanmış dosyaları sütun türü tahmini, atlama ve kodlama seçenekleriyle içe aktarın.
read_csv() ile CSV Dosyalarını Okuma, 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.
Base R Yerine readr Neden Kullanılır?
Base R'de read.csv() bulunur; ancak readr paketindeki read_csv() daha hızlıdır, bir veri çerçevesi yerine tibble döndürür, varsayılan tür tahminini daha iyi yapar ve algıladığı sütun türleri hakkında bilgilendirici iletiler verir.
library(readr)
# read_csv() vs read.csv():
# 1. Returns a tibble (prints nicely, faster subsetting)
# 2. Does NOT convert strings to factors by default
# 3. Shows column specification message
# 4. Faster for large files
# Example with a simple inline CSV:
df <- read_csv('name,score,grade
Alice,85,B
Bob,92,A
Carol,78,C')
print(df)
print(class(df))Bir Dosya Yolundan read_csv() Kullanma
En yaygın kullanım, bir dosya yolu metnini read_csv() işlevine geçirmektir. İşlev ayırıcıyı otomatik olarak virgül kabul eder, ilk satırı başlık olarak okur ve sütun türlerini ilk 1000 satıra göre tahmin eder.
library(readr)
# Reading from a file path (illustrative — file not present)
# df <- read_csv('data/sales_2024.csv')
# Reading from a URL also works:
# df <- read_csv('https://example.com/data.csv')
# Using a literal inline string for demonstration:
df <- read_csv('region,q1,q2,q3
East,100,120,115
West,200,195,210
North,80,85,90')
print(df)col_types — Sütun Türlerini Belirtme
readr'ın tür tahminini geçersiz kılmak için col_types kullanın. Sıkıştırılmış bir metin (sütun başına bir karakter: c=karakter, d=double, i=tam sayı, l=mantıksal, D=tarih, _=atla) veya bir cols() belirtimi geçirin.
library(readr)
df <- read_csv('id,date,amount,active
1,2024-01-15,99.99,TRUE
2,2024-02-20,149.50,FALSE
3,2024-03-10,75.00,TRUE',
# Compact: integer, Date, double, logical
col_types = 'iDdl')
print(df)
cat('\nColumn types:\n')
print(sapply(df, class))Açık Tür Belirtimi için cols()
Daha fazla denetim için her sütunun türünü adlandırmak üzere cols() kullanın. Şu toplayıcı işlevlerden yararlanın: col_double(), col_character(), col_integer(), col_date(format=), col_skip() ve col_guess().
library(readr)
df <- read_csv('id,name,score,date
1,Alice,85.5,2024-01-15
2,Bob,92.0,2024-02-20
3,Carol,78.3,2024-03-10',
col_types = cols(
id = col_integer(),
name = col_character(),
score = col_double(),
date = col_date(format = '%Y-%m-%d')
))
print(df)
print(class(df$date))skip ve n_max Bağımsız Değişkenleri
skip=n, okumaya başlamadan önce ilk n satırı atlar (üstveriler veya açıklama başlıkları için kullanışlıdır). n_max=n, en fazla n veri satırı okur — büyük dosyaları önizlemek veya yalnızca ilk parçayı yüklemek için idealdir.
library(readr)
# File with metadata in first 2 lines
# (simulated with literal string)
df <- read_csv('# Generated 2024-01-15
# Source: internal DB
name,score,grade
Alice,85,B
Bob,92,A
Carol,78,C
Dave,88,B',
skip = 2, # Skip the 2 comment lines
n_max = 3 # Read only 3 data rows
)
print(df)na Bağımsız Değişkeni — Eksik Değerleri Tanımlama
Varsayılan olarak read_csv(), boş dizeleri ve NA değerini eksik kabul eder. Ek dizelerin NA olarak okunmasını belirtmek için na bağımsız değişkenini kullanın — yaygın örnekler: 'N/A', 'NULL', '-999', '.'.
library(readr)
df <- read_csv('name,score,city
Alice,85,NYC
Bob,N/A,NULL
Carol,78,.
Dave,-999,Chicago',
na = c('', 'NA', 'N/A', 'NULL', '.', '-999')
)
print(df)
cat('NAs per column:\n')
print(colSums(is.na(df)))col_names — Özel Sütun Adları
Dosyada başlık satırı yoksa col_names = FALSE ayarlayın; readr sütunları X1, X2 vb. olarak otomatik adlandırır. Alternatif olarak, özel adlar belirtmek ve başlık satırını atlamak için col_names bağımsız değişkenine bir karakter vektörü geçirin.
library(readr)
# File without headers
df <- read_csv('Alice,85,NYC
Bob,92,LA
Carol,78,Chicago',
col_names = c('name','score','city')
)
print(df)
# auto-names when no header:
df2 <- read_csv('1,2,3
4,5,6', col_names = FALSE)
print(df2)locale() — Standart Dışı Biçimleri İşleme
locale(), readr'ın yerel ayara özgü biçimleri nasıl yorumlayacağını denetler: ondalık işaretleri (Avrupa verilerinde ','), tarih biçimleri, kodlama ve gruplama işaretleri. Bunu read_csv(locale=...) işlevine geçirin.
library(readr)
# European-style CSV: semicolons as delimiters, comma as decimal
# read_csv2() is shorthand for this locale
df <- read_csv2('name;price;qty
Alice;9,99;100
Bob;24,50;50',
locale = locale(decimal_mark=',')
)
print(df)
# For dates in non-ISO format:
parse_date('15/01/2024', format='%d/%m/%Y')progress ve show_col_types
Büyük dosyalar için read_csv() bir ilerleme çubuğu gösterir. Bunu gizlemek için progress=FALSE ayarlayın (betiklerde kullanışlıdır). Türleri zaten doğruladıysanız sütun türü iletisini susturmak için show_col_types=FALSE ayarlayın.
library(readr)
# Suppress progress and type messages for production scripts
df <- read_csv(
'a,b,c
1,x,TRUE
2,y,FALSE',
show_col_types = FALSE,
progress = FALSE
)
print(df)Problems() — Ayrıştırma Hatalarını Tanılama
readr beklenen türle eşleşmeyen değerlerle karşılaştığında bunların yerine NA koyar ve bir uyarı kaydeder. Hangi satır ve sütunlarda sorun olduğunu ve özgün değerlerin ne olduğunu tam olarak incelemek için problems(df) çağrısını kullanın.
library(readr)
# Intentional type mismatch: 'N/A' in numeric column
df <- suppressWarnings(read_csv(
'id,score
1,85
2,N/A
3,92',
col_types = cols(score = col_double())
))
print(df)
print(problems(df))map() ile Birden Çok Dosya Okuma
Birden çok CSV dosyasını tek adımda okumak ve satır bazında birleştirmek için readr ile purrr::map() işlevini birleştirin. Bu örüntü, ayrı dosyalarda depolanan aylık/üç aylık veri bölümlerini işlemek için gereklidir.
library(readr)
library(purrr)
library(dplyr)
# Simulated: read and bind multiple CSV files
files <- c('q1.csv', 'q2.csv', 'q3.csv')
# In practice:
# all_data <- map_df(files, read_csv, show_col_types=FALSE)
# Demonstration with inline data:
q1 <- read_csv('month,sales\nJan,100\nFeb,120', show_col_types=FALSE)
q2 <- read_csv('month,sales\nApr,130\nMay,145', show_col_types=FALSE)
bind_rows(list(q1=q1, q2=q2), .id='quarter')Kısa Kontrol
'N/A' ve '-99' değerlerinin eksik (NA) kabul edilmesi gerektiğini read_csv() işlevine nasıl bildirirsiniz?
Özet: readr ile read_csv()
readr ile CSV dosyalarını okumaya ilişkin temel noktalar:
read_csv('file.csv')— CSV'yi okur, tibble döndürür ve sütun türlerini tahmin edercol_types = 'idcl'veyacols(x=col_double())— açık tür belirtimiskip=n— başlık/üstveri satırlarını atlar;n_max=n— okunan satır sayısını sınırlarna = c('N/A','NULL')— ek dizeleri NA kabul ederlocale(decimal_mark=',')— Avrupa sayı biçimlerini işlershow_col_types=FALSE— betiklerde tür bilgilerini gizlerproblems(df)— ayrıştırma hatalarını inceler- Birden çok dosya için
map_df(files, read_csv)ile birleştirin
library(readr)
# Production-ready read_csv() call
df <- read_csv(
'name,score,city,active
Alice,85,NYC,TRUE
Bob,N/A,LA,FALSE
Carol,78,NULL,TRUE',
col_types = cols(
name = col_character(),
score = col_double(),
city = col_character(),
active = col_logical()
),
na = c('', 'NA', 'N/A', 'NULL'),
show_col_types = FALSE
)
print(df)Sıkça Sorulan Sorular
“read_csv() ile CSV Dosyalarını Okuma” dersi ücretsiz mi?
Evet — “read_csv() ile CSV Dosyalarını Okuma” 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.
“read_csv() ile CSV Dosyalarını Okuma” dersinde ne öğreneceğim?
Sınırlanmış dosyaları sütun türü tahmini, atlama ve kodlama seçenekleriyle içe 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 1. dersidir.
“read_csv() ile CSV Dosyalarını Okuma” 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
- read_csv() ile CSV Dosyalarını Okuma
- TSV ve Sabit Genişlikta Dosyaları Ayrıştırma
- readxl ile Excel Dosyalarını İçe Aktarma
- Verileri Birden Fazla Biçimde Yazma