• Keine Ergebnisse gefunden

R-Daten einlesen.

N/A
N/A
Protected

Academic year: 2021

Aktie "R-Daten einlesen."

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

R-Daten einlesen.

Es gibt verschiedene Möglichkeiten: am einfachsten ist es mit read.table() tab = read.table("H:/daten.txt")

R-Session speichern

Verzeichnis auswählen, wo die R-Daten gespeichert werden sollen setwd ("H:")

q() und dann 'ja' Save workspace image.

Die Datei .Rdata enthält die R-Objekte im Verzeichnis xxxx Um die Daten im nächsten Session einzulesen, R starten, dann:

attach("H:/.Rdata")

Um das gespeicherte Verzeichnis zu sehen:

search() ls(pos=2) Packages

Viele Funktionen werden in packages gespeichert.

library()

Einige werden geladen, wenn R gestartet wird. Um zu sehen, welche:

search()

Um zusätzliche Packages zu laden:

library("emu")

Um zu sehen, welchen Funktionen in einem Package enthalten sind:

ls(package:emu) Help-pages

help(pnorm)

example(density)

help.search("norm")

help.start()

(2)

Vektoren

x <- c(3, 4, 6, 89.3, 0, -10)

labs <- c("E", "A", "E", "i:", "A")

Logische Vektoren help("==")

lvec <- c(T, T, F, F, T) class(lvec)

T & F # True AND False is False

[1] FALSE

T | F # True OR False is True

[1] TRUE

F & F # False AND False is False

[1] FALSE

any(c(F, F, F))

[1] FALSE

any(c(T, F, T))

[1] TRUE

any(!c(T, T, T))

[1] FALSE

x = c(10, 20, 30) x == 20

[1] FALSE TRUE FALSE Vektoren: Indizierung

x[2] # element 2 of x

[1] 4

x[2:4] # elements 2 through 4

[1] 4.0 6.0 89.3

x[c(1,4)] # elements 1 and 4

[1] 3.0 89.3

x[-2] # all elements except element 2

[1] 3.0 6.0 89.3 0.0 -10.0

x[2:4] = 0 # set elements 2 through 4 to zero mit logischen Vektoren

x[x >=30] # Elemente von x größer als 30 labs <- c("E", "A", "E", "i:", "A")

# alle "E" Elemente temp = labs=="E"

labs[temp]

# oder

labs[labs=="E"]

Matrizen

help(matrix)

a = c(10, 3, 8, 7)

b = c(11, 45, 20, -1)

(3)

x = rbind(a, b) # a matrix of 2 rows and 4 columns x

[,1] [,2] [,3] [,4]

a 10 3 8 7 b 11 45 20 -1

y = cbind(a, b) # a matrix of 4 rows and 2 columns y

a b [1,] 10 11 [2,] 3 45 [3,] 8 20 [4,] 7 -1

t(y) # y transponieren

dim(y) # Reihen und Spaltenanzahl

nrow(y) ncol(y)

dimnames(y) # Dimensionen-Namen

# Dimensionen-Namen setzen

dimnames(y) = list(c("a", "b", "c", "d"), c("F1", "F2")) Matrizen: Indizierung

duration = c(33, 56, 37, 50, 49, 21) form1 = c(979, 592, 224, 597, 281, 737)

form2 = c(1680, 1940, 2451, 2050, 2624, 1544) data = cbind(duration, form1, form2)

data[2,] # Reihe 2

data[,3] # Spalte 3

data[2,3] # Reihe 2 von Spalte 3

mit logischen Vektoren

labs = c("a", "e", "i", "e", "i", "a")

data[labs=="a",] # alle "a" Reihen

# Spalten 1 und 3 für "i" and "a"

data[labs %in% c("i", "a"),c(1,3)]

# Spalte 3 aller Vokale außer "e"

data[labs!="e",3]

Arithmetische Operatoren help("Arithmetic") Vektoren

a = c(10, 4, 20)

a * 10 # all elements of a are multiplied by 10

[1] 100 40 200

b = c(5, 2, 7) a + b

[1] 15 6 27

# element n of a is added to element n of b

(4)

Matrizen

a = c(10, 3, 8, 7) b = c(11, 45, 20, -1)

x = rbind(a, b) # a matrix of 2 rows and 4 columns x-20

[,1] [,2] [,3] [,4]

a -10 -17 -12 -13 b -9 25 0 -21

> x

[,1] [,2] [,3] [,4]

10 3 8 7 11 45 20 -1

> y = x*2

> y

[,1] [,2] [,3] [,4]

20 6 16 14 22 90 40 -2

> x + y

[,1] [,2] [,3] [,4]

30 9 24 21 33 135 60 -3

Data-frames

 Wie eine Matrix, aber die Spalten können gemischt sein: d.h. einige sind numerische Vektoren, einige sind Schriftzeichen-Vektoren.

 Wird oft in statistischen Tests verwendet, wo wir mit prüfen wollen, ob gewisse numerische Daten für gewisse Faktoren (Schriftzeichen) signifikant sind.

# data-frame einlesen

read.table("H:/daten.txt")

# data-frame in R erzeugen

# zB für die vorigen Daten:

duration = c(33, 56, 37, 50, 49, 21) form1 = c(979, 592, 224, 597, 281, 737)

form2 = c(1680, 1940, 2451, 2050, 2624, 1544) labs = c("a", "e", "i", "e", "i", "a")

d.df = data.frame(F1=form1, F2=form2, dauer=duration, vokale=factor(labs))

d.df

F1 F2 dauer vokale 1 979 1680 33 a 2 592 1940 56 e 3 224 2451 37 i 4 597 2050 50 e 5 281 2624 49 i 6 737 1544 21 a

rownames(d.df) # Reihennamen

colnames(d.df) # Spaltennamen

45 + 90

=

135

(5)

Data-Frames Indizierung

Wie bei Matrizen

Oder mit

attach()

attach(vowlax.df) vowlax.df[1:3,]

F1 F2 F3 f0 rms dur phonetic word speaker 1 562 1768 2379 148.995 81.5328 89.813 E Geld 67 2 648 1463 2523 0.000 70.9245 43.810 a allein 67 3 684 1274 2505 126.482 75.3793 53.130 a macht 67

# F1 von 'geld'

F1[word=="Geld"]

[1] 562 454

# Date-Frames editieren

new.df = edit(d.df)

# R-Objekte unter Windows speichern:

write.table(vowlax.df[1:5,], "H:/v.txt")

write.table(vowlax.df[1:5,], "H:/v.txt", quote=F) write.table(vowlax.df[1:5,], "H:/v.txt", quote=F, row.names=F, col.names=F)

a = c(3, 4) b = c(10, -12) xx = rbind(a, b)

write.table(xx, "H:/xx.txt", quote=F, row.names=F, col.names=F)

Allgemeine nützliche Funktionen

length(), diff(), log(), sqrt(),sum()

seq(), rep(), unique(), table(), paste(), nchar(), substring(), sort(), summary()

range(), max(), min(), mean(), median(),

(6)

Fragen

vowlax.df ist ein vorhandenes R data.frame. Führen Sie den attach() Befehl aus:

attach(vowlax.df)

und schreiben Sie R-Befehle in diesen Fällen:

1 Die Anzahl der Reihen

2 Die Anzahl der Reihen und Spalten 3 Die ersten fünf Reihen

4 Die Spalten-Namen

5 Alle Reihen, in denen F1 in Bark – f0 in Bark größer als 3.5 ist (die bark() Funktion konvertiert von Hz in Bark).

6 Alle Reihen mit einem "I" Vokal

7. Die Anzahl der "I" und "E" Vokale für die F2 weniger als 1800 Hz ist.

8. Alle Reihen mit "I" Vokalen für die F3 in Bark – F2 in Bark weniger als 1 Bark ist.

9 Die Reihe mit der größten Dauer.

10. Die Reihen, in denen die Dauer größer als 100 ms und f0 weniger als 90 Hz ist.

10 the rows of the data frame in which the duration is greater than 100 ms and in which f0 is less than 90 Hz.

11. Wie 10 aber nur die Vokal-Etikettierungen davon.

12. Wie 10 aber nur die Vokal-Etikettierungen und die Sprecher-Etikettierungen.

13. Die Anzahl der "I" und "E" Vokale in denen F1 größer als 400 Hz und F2 weniger

als 1600 Hz sind.

Referenzen

ÄHNLICHE DOKUMENTE

• Ruhende elektrische Ladungen erzeugen

Ein Element in einem Ring ist genau dann nilpotent, wenn es in jedem Primideal enthalten ist (vgl. Algebra 2, Aufg. 30)). (c) Ist R reduziert, dann ist die Vereinigung aller

3 werden die folgenden Zugehörigkeitswerte der Lebewesen zum Cluster III über den Helligkeitswert und die Schriftgröße gezeigt: u i3 &gt; 0.65 für die Lebewesen i des Clusters

Als Dateityp sind unter Windows postscript , pdf , png oder jpeg zulässig. Die Rasterformate PNG und JPEG sollten nicht für Ausdrucke sondern nur für die Bil- schirmdarstellung

[r]

[r]

W¨ aren wir jetzt in einem der (wie es Barney aus ”himym” ausdr¨ ucken w¨ urde) legend¨ aren B¨ ucher von Wolf Haas, w¨ urde an dieser Stel- le der Satz ”Jetzt ist schon

The occupation number of a magnetically trapped Bose-Einstein condensate is limited for atoms with attractive interactions.. It has been predicted that, as this limit is approached,