Mittlere Artenzahl berechnen (Mittelwert)

Berechnung von deskriptiven Statistiken mit R.

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon jogo » Fr 19. Jul 2019, 11:04

krissie hat geschrieben:Ok verstehe! Die Nullen sollen nicht berücksichtigt werden. Es ist allerdings so, dass ich nicht den Mittelwert aller 8 Reihen benötige, sondern folgendes Muster setzt sich fort (sorry, hätte ich erwähnen müssen):

8 Reihen, 8 Reihen, 4 Reihen, 1 Reihe, 8 Reihen, 8 Reihen, 4 Reihen, 1 Reihe usw.

Geht das auch irgendwie?
na klar, geht das. Vielleicht so:
Code: Alles auswählen
M <- as.matrix(drygrassland[-1])
BlockMeans <- function(start) {
  c(mean(M[, (start-1) + 1:8], na.rm=TRUE), mean(M[, (start-1) + 9:16], na.rm=TRUE),
    mean(M[, (start-1) + 17:20], na.rm=TRUE), mean(M[, (start-1) + 21], na.rm=TRUE))
}
sapply(seq(1, ncol(M)-20, by=8+8+4+1), FUN=BlockMeans)

Gruß, Jörg
üblicherweise bin ich öfter in jenem Forum: http://forum.r-statistik.de
jogo
 
Beiträge: 193
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon krissie » Fr 19. Jul 2019, 14:40

jogo hat geschrieben:
krissie hat geschrieben:Ok verstehe! Die Nullen sollen nicht berücksichtigt werden. Es ist allerdings so, dass ich nicht den Mittelwert aller 8 Reihen benötige, sondern folgendes Muster setzt sich fort (sorry, hätte ich erwähnen müssen):

8 Reihen, 8 Reihen, 4 Reihen, 1 Reihe, 8 Reihen, 8 Reihen, 4 Reihen, 1 Reihe usw.

Geht das auch irgendwie?
na klar, geht das. Vielleicht so:
Code: Alles auswählen
M <- as.matrix(drygrassland[-1])
BlockMeans <- function(start) {
  c(mean(M[, (start-1) + 1:8], na.rm=TRUE), mean(M[, (start-1) + 9:16], na.rm=TRUE),
    mean(M[, (start-1) + 17:20], na.rm=TRUE), mean(M[, (start-1) + 21], na.rm=TRUE))
}
sapply(seq(1, ncol(M)-20, by=8+8+4+1), FUN=BlockMeans)

Gruß, Jörg


Es kommt leider folgende Fehlermeldung:

Error in seq.default(1, ncol(M) - 20, by = 8 + 8 + 4 + 1) :
falsches Vorzeichen im 'by' Argument

Was wird damit gemeint?
krissie
 
Beiträge: 7
Registriert: Do 11. Jul 2019, 20:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Mittlere Artenzahl berechnen (Mittelwert)

Beitragvon jogo » Fr 19. Jul 2019, 15:11

Keine Ahnung, vielleicht hat sich irgendein blödes Steuerzeichen eingemogelt. Normalerweise bedeutet es, dass der Wert von by= negativ ist (wenn die Sequenz aufsteigend sein soll), z.B.
Code: Alles auswählen
seq(1, 10, by=-3)

Bitte nimm einfach:
Code: Alles auswählen
sapply(seq(1, ncol(M)-20, by=21), FUN=BlockMeans)
und teste notfalls selber:
Code: Alles auswählen
seq(1, ncol(M)-20, by=21)
und
Code: Alles auswählen
ncol(M)
wegen
Code: Alles auswählen
seq(1, 0-20, by=21)

Hier ist noch eine Variante:
Code: Alles auswählen
M <- as.matrix(drygrassland[-1])
Bmeans <- function(B) c(mean(B[, 1:8],   na.rm=TRUE), mean(B[, 9:16], na.rm=TRUE),
                        mean(B[, 17:20], na.rm=TRUE), mean(B[, 21],   na.rm=TRUE))
sapply(seq(1, ncol(M)-20, by=21), FUN=function(start) Bmeans(M[, start:(start+20)]))

Gruß, Jörg
üblicherweise bin ich öfter in jenem Forum: http://forum.r-statistik.de
jogo
 
Beiträge: 193
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post

Vorherige

Zurück zu Deskriptive Statistik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron