R bietet Ihnen weitreichende Flexibilität, mit verschiedenen Dateiformaten zu arbeiten.
Arbeiten Sie mit Windows, macOS oder Linux? Während bei Pfadangaben bei Windows der umgedrehte/nach links geneigte Schrägstrich ("\") als Trennzeichen benutzt wird (backlash), verwenden Linux und macOS das nach rechts geneigte Trennzeichen ("/")
Bei Windows ist der Pfadangabe eine Laufwerksbezeichnung vorangestellt (oft "C:" oder "D:"): Was sehen Sie, wenn Sie mit .libPaths()
das Verzeichnis abfragen, in dem Ihre R Pakete installiert sind?
Zum Verbinden von Pfadangaben aus Vektoren empfiehlt sich die file.path()
Funktion.
Mit list.files()
erhalten Sie
head(list.files(.libPaths()[1]))
| Funktion | Beschreibung |
|----------|--------------|
| list.files()
| Auflisten von Dateien und Verzeichnissen |
| mkdir()
| Anlegen eines neuen Verzeichnisses |
| setwd()
| Setzen des Arbeitsverzeichnisses |
| getwd()
| Was ist das gültige Arbeitsverzeichnis |
| file.path()
| Vektoren zu Pfad verbinden |
| path.expand()
| Tilde in Pfadangaben durch vollständigen Pfad ersetzen |
| file.exists()
| Logischer Test ob Verzeichnis oder Pfad existiert |
| basename()
| Dateiname ohne Pfadangabe |
| dirname()
| Übergeordnetes Verzeichnis einer Dateiangabe |
~
) am Anfang von Pfadangaben. Dieses ist eine Abkürzung für die Pfadangabe Ihres persönlichen Nutzerverzeichnis. Welches Verzeichnis sich hinter ~
verbirgt, erfahren Sie mit der path.expand()
-Funktion. Viele R-Funktionen wenden path.expand()
auf Pfadangaben an.path.expand("~")
tempfile()
erhalten Sie einen zufälligen, temporären Dateinamen im temporären R Verzeichnis (Wert von tempdir()
), das für jede R-Sitzung angelegt wird. Das temporäre Verzeichnis wird beim Beenden der Sitzung (inklusive aller Dateien darin) gelöscht wird.tempdir() tempfile()
| Funktion | Beschreibung |
|----------|--------------|
| scan()
| Einlesen von Vektoren (aus Datei oder interaktive Eingabe) |
| cat()
| Schreiben von Vektoren |
| readLines()
| zeilenweises Einlesen von character
-Vektoren |
| writeLines()
| zeilenweises Schreiben von character
-Vektoren |
| read.table()
, read.csv()
, read.csv2()
, read.delim()
, read.delim2()
| Einlesen von Tabellen |
| download.file()
oder curl::curl_download()
| Download von Dateien |
| Datenformat | Paket | |-------------|-------| | SPSS (.sav) / STATA (.dta) | foreign oder haven | | JSON (.json) | jsonlite | | Excel (.xlsx) | openxlsx | | XML (.xml) | xml2 | | csv (.csv) / tsv (.tsv) | readr |
Einlesen einer Excel-Datei ...
excel_online <- "https://opendata-duisburg.de/sites/default/files/Corona%2030.04.2021.xlsx" data <- openxlsx::read.xlsx(xlsxFile = excel_online)
Nachbereinigung der Zellen ...
library(readr) data[[1]] <- parse_date(gsub("\u00A0", "", data[[1]]), format = "%d.%m.%Y", trim_ws = TRUE) purge <- function(x){ loc <- readr::locale(grouping_mark = ".") readr::parse_number(x, locale = loc, trim_ws = TRUE, na = "\u00A0\u00A0") } for (col in colnames(data[2:ncol(data)])) data[[col]] <- purge(data[[col]])
DT::datatable(data, options = list(pageLength = 8L), rownames = FALSE)
head(data, 15)
library(readr) tab_csv <- readr::read_delim( file = "https://opendata-duisburg.de/sites/default/files/Corona%2030.04.2021.csv", col_types = cols(col_date(format = "%d.%m.%Y"), col_number(), col_number(), col_number(), col_number()), locale = locale(decimal_mark = ",", grouping_mark = "."), delim = ";", na = c("", "\u00A0") )
Zur Sicherheit: Sind die Daten identisch?
sapply( 2:ncol(data), function(i) identical(sum(data[[i]], na.rm = TRUE), sum(tab_csv[[i]], na.rm = TRUE)) )
json_url <- "https://opendata-duisburg.de/api/action/datastore/search.json?resource_id=00766064-4cab-4f40-8f67-82ec6b14d6ca" json_data <- jsonlite::fromJSON(json_url) tab <- json_data$result$records for (i in 2:ncol(tab)) tab[[i]] <- as.integer(tab[[i]]) head(tab, n = 3)
tail(tab, n = 3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.