Summe jeder Kombination berechnen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

LeaRn
Beiträge: 17
Registriert: Sa Mär 14, 2020 12:25 am

Re: Summe jeder Kombination berechnen

Beitrag von LeaRn »

2 Zeilen sind gut genug :D . Ich war mir nicht bewusst, dass es vorgeschriebene Funktionen für sowas gibt. Vielen Dank nochmals für den Code und für die Erklärung.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Summe jeder Kombination berechnen

Beitrag von Athomas »

Neu war mir, dass das "sapply" in permn durch den "fun"-Parameter quasi eingearbeitet ist :) ...
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Summe jeder Kombination berechnen

Beitrag von jogo »

Hallo Thomas,

es ist kein sapply() sondern ein lapply(), was dort in permn() (oder auch combn()) eingebaut ist. Die Funktion kann ein beliebiges Objekt zurückliefern, ein Argument simlify= ist nicht vorhanden. Deshalb noch unlist(...).

Gruß, Jörg
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Summe jeder Kombination berechnen

Beitrag von Athomas »

Vielleicht ist meine Version dann noch einfacher :D :

Code: Alles auswählen

library(combinat)
Daten    <- matrix(rnorm(25), ncol=5)
permsum  <- function(vektor) sum(Daten[cbind(1:length(vektor), vektor)])
Ergebnis <- sapply(permn(1:5), permsum)
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Summe jeder Kombination berechnen

Beitrag von jogo »

zumindest muss man durch die Nutzung von sapply() nicht den unlist()-Kopfstand machen. 8-)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Summe jeder Kombination berechnen

Beitrag von bigben »

Und ich kannte das package gar nicht und bin immer noch ganz perplex, dass es für sowas grundlegendes wie die Permutationen der Elemente eines Vektors tatsächlich eines Fremdpakets bedarf. Warum haben wir sample.int(5, 5) als Boardmittel aber kein permutations()?

Naja, muss man wohl nicht verstehen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten