In dieser Beispiel-Anal;yse sehen wir uns noch einmal die Daten zu dem LAMP-Test an, die in der ersten Vorlesung beschrieben wurden.
Einlesen einer Excel-Datei
Zunächst lesen wir die erste Platte vom ersten Worksheet der Excel-Tabelle mit den Plattenscans ein. Wir geben hier das Rechteck aus Zellen an, indem die Tabelle liegt: von Zelle A8 bis Zelle M16.
suppressPackageStartupMessages({library( tidyverse )library( readxl ) }) # readxl, um Excel-Daten laden zu könnenread_excel( "~/Downloads/tecan_scans.xlsx", range="A8:M16" )
# A tibble: 96 × 3
plate_row plate_col abs434
<chr> <chr> <dbl>
1 A 1 1.53
2 A 2 1.54
3 A 3 1.43
4 A 4 1.40
5 A 5 1.40
6 A 6 1.41
7 A 7 1.31
8 A 8 1.38
9 A 9 1.09
10 A 10 1.18
# ℹ 86 more rows
Hier haben wir nun Tabellenzeilen für Plattenzeile und Plattenspalte. Die Spalte mit den Werten heist nun “abs434” für “Absorption bei 434 nm”.
Dasselbe für den Scan bei 560 nm, der weiter unten im Excel-Worksheet (in Zeilen 22 bis 30) steht.
# A tibble: 96 × 3
plate_row plate_col abs560
<chr> <chr> <dbl>
1 A 1 1.11
2 A 2 1.32
3 A 3 1.05
4 A 4 1.02
5 A 5 1.10
6 A 6 1.07
7 A 7 1.20
8 A 8 1.19
9 A 9 1.51
10 A 10 1.52
# ℹ 86 more rows
# A tibble: 96 × 4
plate_row plate_col abs434 abs560
<chr> <chr> <dbl> <dbl>
1 A 1 1.53 1.11
2 A 2 1.54 1.32
3 A 3 1.43 1.05
4 A 4 1.40 1.02
5 A 5 1.40 1.10
6 A 6 1.41 1.07
7 A 7 1.31 1.20
8 A 8 1.38 1.19
9 A 9 1.09 1.51
10 A 10 1.18 1.52
# ℹ 86 more rows
Mit by haben wir angegeben, an welchen Spalten der Join erkennt, welche Zeilen zusammengefügt werden sollen.
Die übrigen Worksheets
Die was das erste Sheet, beschriftet mit “20 min”. Um ein anderes Sheet, z.B. das für Inkubationszeit “25 min” zu erhalten, müssen wir ein sheet-Argument mit angeben:
# A tibble: 576 × 5
plate_row plate_col abs434 abs560 time
<chr> <chr> <dbl> <dbl> <dbl>
1 A 1 1.53 1.11 20
2 A 2 1.54 1.32 20
3 A 3 1.43 1.05 20
4 A 4 1.40 1.02 20
5 A 5 1.40 1.10 20
6 A 6 1.41 1.07 20
7 A 7 1.31 1.20 20
8 A 8 1.38 1.19 20
9 A 9 1.09 1.51 20
10 A 10 1.18 1.52 20
# ℹ 566 more rows
WIr können auch
seq( 20, 45, 5 )
[1] 20 25 30 35 40 45
verwenden, um alle Zeiten zu erzeugen, und dann die Funktion für jede Zeit aufrufen. Wenn man das mit map_dfr macht, werden die Ergebnisse wie zuvor zu einer langen Tabelle zusammengestellt: