Mittlere Artenzahl berechnen (Mittelwert)

Berechnung von deskriptiven Statistiken mit R.

Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon krissie » Do 11. Jul 2019, 20:42

Hallo,

für meine Masterarbeit möchte ich die mittlere Artenanzahl berechnen. Dafür benötige ich zunächst die Anzahl der Arten pro Spalte und dann den Mittelwert von bestimmten Spaltenabschnitten: Also der Mittelwert nur von den Spalten A1 bis A8 (V2 bis V9), dann nur von B1 bis B8 (V10 bis V17) usw. Der Datensatz erstreckt sich über etwa 500 Spalten. Wie kann ich die Mittelwerte für die einzelnen Spaltenabschnitte aggregierend berechnen?

Bitte helft mir!!

Viele Grüße,
Krissie
Dateianhänge
Unbenannt.PNG
Tabellenausschnitt
Unbenannt.PNG (65.57 KiB) 38-mal betrachtet
krissie
 
Beiträge: 4
Registriert: Do 11. Jul 2019, 20:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon jogo » Sa 13. Jul 2019, 07:08

Hallo Krissie,

das sieht so aus, als wenn beim Einlesen der Daten etwas schief gelaufen ist.
Kannst Du bitte mal den Output von
Code: Alles auswählen
str(drygrassland_ohne_D[, 1:20])
in Deine nächste Nachricht kopieren?

Gruß, Jörg
jogo
 
Beiträge: 164
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon krissie » Sa 13. Jul 2019, 11:57

Hallo Jörg,

vielen Dank für deine Hilfe!

Hier ist der Output...

'data.frame': 208 obs. of 20 variables:
$ V1 : Factor w/ 205 levels "Achillea_millefolium_agg_",..: 134 49 79 84 130 166 172 120 78 94 ...
$ V2 : Factor w/ 4 levels "0","30","5","TR27A1": 4 2 2 3 3 3 3 1 1 1 ...
$ V3 : Factor w/ 4 levels "0","30","5","TR27A2": 4 1 2 3 1 1 2 1 1 1 ...
$ V4 : Factor w/ 4 levels "0","5","75","TR27A3": 4 1 1 1 2 1 1 2 3 1 ...
$ V5 : Factor w/ 4 levels "0","5","75","TR27A4": 4 1 1 1 1 1 1 1 3 2 ...
$ V6 : Factor w/ 4 levels "0","30","5","TR27A5": 4 1 1 1 1 1 1 1 3 1 ...
$ V7 : Factor w/ 4 levels "0","5","75","TR27A6": 4 1 1 1 1 1 1 1 3 1 ...
$ V8 : Factor w/ 5 levels "0","30","5","75",..: 5 1 1 1 1 1 2 1 4 1 ...
$ V9 : Factor w/ 5 levels "0","30","5","75",..: 5 1 1 1 1 1 2 1 4 1 ...
$ V10: Factor w/ 4 levels "0","30","5","TR27B1": 4 2 3 3 3 3 3 1 3 1 ...
$ V11: Factor w/ 4 levels "0","30","5","TR27B2": 4 1 2 3 1 1 2 1 3 1 ...
$ V12: Factor w/ 4 levels "0","30","5","TR27B3": 4 1 1 1 3 1 1 3 2 3 ...
$ V13: Factor w/ 4 levels "0","5","75","TR27B4": 4 2 1 1 2 1 1 2 3 2 ...
$ V14: Factor w/ 5 levels "0","30","5","75",..: 5 1 1 1 1 1 1 3 2 1 ...
$ V15: Factor w/ 5 levels "0","30","5","75",..: 5 1 1 1 1 1 3 3 4 1 ...
$ V16: Factor w/ 4 levels "0","30","5","TR27B7": 4 1 1 1 1 1 2 1 2 1 ...
$ V17: Factor w/ 4 levels "0","30","5","TR27B8": 4 1 1 1 1 1 2 3 2 1 ...
$ V18: Factor w/ 4 levels "0","30","5","TR27C1": 4 3 2 3 3 3 3 3 2 1 ...
$ V19: Factor w/ 5 levels "0","30","5","75",..: 5 3 1 1 3 1 2 3 4 3 ...
$ V20: Factor w/ 5 levels "0","30","5","75",..: 5 3 1 1 1 1 3 3 4 1 ...
>

Ich möchte außerdem die Bezeichnung der Reihennamen ändern, also statt V1, V2 usw. die Bezeichnungen der ersten Zeile übernehmen. Wenn ich folgenden code nutze, kommt immer die Fehlermeldung "doppelte row.names" sind nicht zulässig". Wo ist der Fehler?

Code: Alles auswählen
[code]drygrassland<-read.table("drygrassland_main.txt",header=T,row.names = 1)[/code]
krissie
 
Beiträge: 4
Registriert: Do 11. Jul 2019, 20:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon krissie » Sa 13. Jul 2019, 11:58

jogo hat geschrieben:Hallo Krissie,

das sieht so aus, als wenn beim Einlesen der Daten etwas schief gelaufen ist.
Kannst Du bitte mal den Output von
Code: Alles auswählen
str(drygrassland_ohne_D[, 1:20])
in Deine nächste Nachricht kopieren?

Gruß, Jörg
krissie
 
Beiträge: 4
Registriert: Do 11. Jul 2019, 20:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon jogo » Mo 15. Jul 2019, 09:14

Hallo Krissie,

versuch mal:
Code: Alles auswählen
drygrassland<-read.table("drygrassland_main.txt", skip=1,header=TRUE, row.names = 1)

Es scheint oberhalb der Kopfzeile noch eine weitere zu geben. Mit skip=1 kannst Du diese überspringen.
Bitte kontrolliere anschließend wieder die Struktur des Dataframes.
Wenn Spalten als Factor angezeigt werden, die eigentlich numerische Werte enthalten sollten, ist etwas schief gegangen.

Gruß, Jörg
jogo
 
Beiträge: 164
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon krissie » Mo 15. Jul 2019, 13:19

jogo hat geschrieben:Hallo Krissie,

versuch mal:
Code: Alles auswählen
drygrassland<-read.table("drygrassland_main.txt", skip=1,header=TRUE, row.names = 1)

Es scheint oberhalb der Kopfzeile noch eine weitere zu geben. Mit skip=1 kannst Du diese überspringen.
Bitte kontrolliere anschließend wieder die Struktur des Dataframes.
Wenn Spalten als Factor angezeigt werden, die eigentlich numerische Werte enthalten sollten, ist etwas schief gegangen.

Gruß, Jörg


Danke! Die row names haben nun geklappt ;)

Hier ist nochmal die Datenstruktur. Sind die Werte jetzt numerisch? Und was bedeutet die zweite Zeile?

data.frame': 207 obs. of 553 variables:
$ species : Factor w/ 204 levels "Achillea_millefolium_agg_",..: 49 79 84 130 165 171 120 78 94 101 ...
$ TR27A1 : int 30 30 5 5 5 5 0 0 0 0 ...
$ TR27A2 : int 0 30 5 0 0 30 0 0 0 0 ...
$ TR27A3 : int 0 0 0 5 0 0 5 75 0 0 ...
$ TR27A4 : int 0 0 0 0 0 0 0 75 5 5 ...
$ TR27A5 : int 0 0 0 0 0 0 0 5 0 0 ...
$ TR27A6 : int 0 0 0 0 0 0 0 75 0 0 ...
$ TR27A7 : int 0 0 0 0 0 30 0 75 0 0 ...
$ TR27A8 : int 0 0 0 0 0 30 0 75 0 0 ...
$ TR27B1 : int 30 5 5 5 5 5 0 5 0 0 ...
$ TR27B2 : int 0 30 5 0 0 30 0 5 0 5 ...
$ TR27B3 : int 0 0 0 5 0 0 5 30 5 0 ...
$ TR27B4 : int 5 0 0 5 0 0 5 75 5 5 ...
$ TR27B5 : int 0 0 0 0 0 0 5 30 0 0 ...
$ TR27B6 : int 0 0 0 0 0 5 5 75 0 0 ...
$ TR27B7 : int 0 0 0 0 0 30 0 30 0 0 ...
$ TR27B8 : int 0 0 0 0 0 30 5 30 0 0 ...
$ TR27C1 : int 5 30 5 5 5 5 5 30 0 0 ...
$ TR27C2 : int 5 0 0 5 0 30 5 75 5 5 ...
$ TR27C3 : int 5 0 0 0 0 5 5 75 0 0 ...
$ TR27C4 : int 5 0 0 5 0 30 5 30 0 0 ...
$ TR27E : int 30 5 5 5 5 30 30 75 5 5 ...
krissie
 
Beiträge: 4
Registriert: Do 11. Jul 2019, 20:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon jogo » Mo 15. Jul 2019, 13:44

krissie hat geschrieben:Danke! Die row names haben nun geklappt ;)

Hier ist nochmal die Datenstruktur. Sind die Werte jetzt numerisch? Und was bedeutet die zweite Zeile?

data.frame': 207 obs. of 553 variables:
$ species : Factor w/ 204 levels "Achillea_millefolium_agg_",..: 49 79 84 130 165 171 120 78 94 101 ...
$ TR27A1 : int 30 30 5 5 5 5 0 0 0 0 ...
$ TR27A2 : int 0 30 5 0 0 30 0 0 0 0 ...
$ TR27A3 : int 0 0 0 5 0 0 5 75 0 0 ...
$ TR27A4 : int 0 0 0 0 0 0 0 75 5 5 ...
$ TR27A5 : int 0 0 0 0 0 0 0 5 0 0 ...
$ TR27A6 : int 0 0 0 0 0 0 0 75 0 0 ...
$ TR27A7 : int 0 0 0 0 0 30 0 75 0 0 ...
$ TR27A8 : int 0 0 0 0 0 30 0 75 0 0 ...
...
$ TR27E : int 30 5 5 5 5 30 30 75 5 5 ...

ja, int steht für integer. Du meinst die Zeile mit $species :?:
Wenn Du das nicht möchtest, musst Du so einlesen:
Code: Alles auswählen
drygrassland<-read.table("drygrassland_main.txt", skip=1, header=TRUE, row.names = 1, stringsAsFactors=FALSE)

Für die Anzahl der Arten je Spalte:
Code: Alles auswählen
sapply(drygrassland[-1], function(x) sum(x>0))

Und dann war ja noch:
und dann den Mittelwert von bestimmten Spaltenabschnitten: Also der Mittelwert nur von den Spalten A1 bis A8 (V2 bis V9), dann nur von B1 bis B8 (V10 bis V17)

Dafür müsstest Du mal kundtun, wie Du es bei der Mittelwertbildung mit den Nullen handhaben möchtest:
a) die Nullen sollen normal einbezogen werden (mean(c(3, 0, 1, 0)) ergibt 1),
b) die Nullen bedeuten NA und sollen nicht berücksichtigt werden; mean(c(3, NA, 1, NA), na.rm=TRUE) ergibt 2

Gruß, Jörg
jogo
 
Beiträge: 164
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post


Zurück zu Deskriptive Statistik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron