CSV-Dateien mit read_csv() lesen
Importieren Sie Dateien mit Trennzeichen und Optionen zur Erkennung, zum Überspringen und zur Kodierung von Spaltentypen.
CSV-Dateien mit read_csv() lesen ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum readr statt Base R?
Base R bietet zwar read.csv(), aber read_csv() aus dem Paket readr ist schneller, gibt ein Tibble (keinen Dataframe) zurück, bietet eine bessere Typenerkennung mit sinnvollen Standardeinstellungen und liefert informative Meldungen zu den erkannten Spaltentypen.
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))read_csv() aus einem Dateipfad
Die häufigste Verwendung besteht darin, eine Zeichenkette mit einem Dateipfad an read_csv() zu übergeben. Die Funktion erkennt automatisch ein Komma als Trennzeichen, liest die erste Zeile als Spaltenüberschriften und leitet die Spaltentypen aus den ersten 1000 Zeilen ab.
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 — Spaltentypen festlegen
Verwenden Sie col_types, um die automatische Typenerkennung von readr zu überschreiben. Übergeben Sie eine kompakte Zeichenkette (ein Zeichen pro Spalte: c=character, d=double, i=integer, l=logical, D=date, _=skip) oder eine Spezifikation mit cols().
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))cols() für eine explizite Typenspezifikation
Für eine genauere Steuerung verwenden Sie cols(), um den Typ jeder Spalte anzugeben. Verwenden Sie dazu Collector-Funktionen: col_double(), col_character(), col_integer(), col_date(format=), col_skip() und 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))Die Argumente skip und n_max
skip=n überspringt vor dem Einlesen die ersten n Zeilen (nützlich für Metadaten oder Kommentarüberschriften). n_max=n liest höchstens n Datenzeilen ein — ideal, um große Dateien in der Vorschau zu prüfen oder nur den ersten Abschnitt zu laden.
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)Das Argument na — Fehlende Werte definieren
Standardmäßig behandelt read_csv() leere Zeichenketten und NA als fehlende Werte. Verwenden Sie das Argument na, um zusätzliche Zeichenketten anzugeben, die als NA eingelesen werden sollen — häufige Beispiele sind: '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 — Benutzerdefinierte Spaltennamen
Setzen Sie col_names = FALSE, wenn die Datei keine Kopfzeile enthält — readr benennt die Spalten dann automatisch mit X1, X2 usw. Alternativ können Sie einen Character-Vektor an col_names übergeben, um benutzerdefinierte Namen festzulegen und die Kopfzeile zu überspringen.
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() — Nicht standardisierte Formate verarbeiten
locale() steuert, wie readr länderspezifische Formate interpretiert: Dezimaltrennzeichen (',' in europäischen Daten), Datumsformate, Zeichenkodierung und Tausendertrennzeichen. Übergeben Sie es an read_csv(locale=...).
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 und show_col_types
Bei großen Dateien zeigt read_csv() einen Fortschrittsbalken an. Setzen Sie progress=FALSE, um ihn zu unterdrücken (nützlich in Skripten). Mit show_col_types=FALSE unterdrücken Sie die Meldung zu den Spaltentypen, wenn Sie diese bereits überprüft haben.
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() — Fehler beim Parsen diagnostizieren
Wenn readr auf Werte trifft, die nicht dem erwarteten Typ entsprechen, ersetzt es diese durch NA und zeichnet eine Warnung auf. Rufen Sie problems(df) auf, um genau zu prüfen, in welchen Zeilen und Spalten Probleme aufgetreten sind und wie die ursprünglichen Werte lauteten.
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))Mehrere Dateien mit map() einlesen
Kombinieren Sie readr mit purrr::map(), um mehrere CSV-Dateien in einem Schritt einzulesen und zeilenweise zusammenzuführen. Dieses Muster ist unverzichtbar, wenn monatlich oder vierteljährlich aufgeteilte Daten in separaten Dateien verarbeitet werden sollen.
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')Kurztest
Wie teilen Sie read_csv() mit, dass die Werte 'N/A' und '-99' als fehlend (NA) behandelt werden sollen?
Zusammenfassung: read_csv() mit readr
Die wichtigsten Erkenntnisse zum Einlesen von CSV-Dateien mit readr:
read_csv('file.csv')— liest eine CSV-Datei ein, gibt ein Tibble zurück und erkennt die Spaltentypen automatischcol_types = 'idcl'odercols(x=col_double())— explizite Typenspezifikationskip=n— Kopf- oder Metadatenzeilen überspringen;n_max=n— Anzahl der eingelesenen Zeilen begrenzenna = c('N/A','NULL')— zusätzliche Zeichenketten als NA behandelnlocale(decimal_mark=',')— europäische Zahlenformate verarbeitenshow_col_types=FALSE— Typinformationen in Skripten unterdrückenproblems(df)— Fehler beim Parsen untersuchen- Mit
map_df(files, read_csv)mehrere Dateien verarbeiten
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)Häufig gestellte Fragen
Ist die Lektion „CSV-Dateien mit read_csv() lesen“ kostenlos?
Ja — der vollständige Text von „CSV-Dateien mit read_csv() lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „CSV-Dateien mit read_csv() lesen“?
Importieren Sie Dateien mit Trennzeichen und Optionen zur Erkennung, zum Überspringen und zur Kodierung von Spaltentypen. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um R Academy zu starten?
Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „CSV-Dateien mit read_csv() lesen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?
Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- CSV-Dateien mit read_csv() lesen
- TSV- und Fixed-Width-Dateien parsen
- Excel-Dateien mit readxl importieren
- Daten in mehrere Formate schreiben