Randomisierung mit R

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

Moderatoren: EDi, jogo

Antworten
FridaKoriander
Beiträge: 37
Registriert: Do Dez 01, 2016 9:08 pm

Randomisierung mit R

Beitrag von FridaKoriander »

Hallo zusammen,
gibt es eine Möglichkeit, dass ich mit Hilfe von R 24 Paare von Listen generiere, die jeweils 4 Ziffern enthalten, jedoch die beiden Ziffern an der zweiten und vierten Stelle dieselben sind...? Hier ein Beispiel:
Listenpaar 1:
Liste A: 4 6 8 9
Liste B: 4 6 7 9

Listenpaar 2:
Liste A: 8 3 5 1
Liste B: 9 3 7 1
Ich hoffe, ich konnte es verständlich formulieren.
Die Ziffern sollten von 1 - 9 sein. Über ein bisschen Inspiration oder den ein oder anderen Tipp würde ich mich sehr freuen :-)
Viele Grüße
Frida
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Randomisierung mit R

Beitrag von jogo »

Hallo Frida,

Code: Alles auswählen

genListpaar <- function(x) list(x[1:4], x[c(5,2,6,4)])
apply(replicate(24, sample.int(9, 6)), 2, genListpaar)
bezüglich welcher Positionen von Ziffern replace=TRUE zugelassen war, konnte ich aus Deiner Nachricht nicht erkennen.

Gruß, Jörg
FridaKoriander
Beiträge: 37
Registriert: Do Dez 01, 2016 9:08 pm

Re: Randomisierung mit R

Beitrag von FridaKoriander »

Perfekt! Das ist genau das, was ich gesucht habe. Besten Dank und Grüße!
Frida
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Randomisierung mit R

Beitrag von jogo »

Hallo Frida,

das hätte ich fast nicht erwartet, dass diese Lösung passend für Dich ist, weil Du mit meinem Code nie und nimmer Dein Listenpaar1 geliefert bekommst.

Gruß, Jörg
FridaKoriander
Beiträge: 37
Registriert: Do Dez 01, 2016 9:08 pm

Re: Randomisierung mit R

Beitrag von FridaKoriander »

Hallo zusammen,

erst mal nochmal vielen Dank für die bisherige Hilfe bezüglich dieser Frage. Ich hätte nun noch eine weitere Frage hierzu: Ich würde jetzt gerne vier Listenpaare (jede Liste soll aus jeweils vier Ziffern bestehen) erstellen, wobei jetzt aber zufällig zwei Ziffern jeweils dieselben sein sollen. Also zum Beispiel:
Listenpaar 1:
Liste A: 4 6 8 9
Liste B: 4 6 5 2

Listenpaar 2:
Liste A: 5 8 3 4
Liste B: 6 8 9 4

Listenpaar 3:
Liste A: 2 4 1 9
Liste B: 2 6 3 9

Listenpaar 4:
Liste A: 7 5 1 2
Liste B: 4 6 1 2

Ich hoffe, ich konnte es klar darstellen. Über Tipps und Vorschläge würde ich mich freuen! Besten Dank schon mal und viele Grüße!
Frida
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Randomisierung mit R

Beitrag von bigben »

Hallo Frida,

die Randbedingungen sind wieder völlig unklar. Sind das eigentlich Hausaufgaben, oder verfolgt das einen Zweck im echten Leben? Hilft das hier?

Code: Alles auswählen

for(i in 1:4){
  listeA <- sample(1:9, 4)
  listeB <- sample(1:9, 4)
  gleich <- sample(1:4, 2)
  listeB[gleich] <- listeA[gleich]

  cat("\n---\nListe A: ")
  cat(listeA)
  cat("\nListe B: ")
  cat(listeB)
}
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
FridaKoriander
Beiträge: 37
Registriert: Do Dez 01, 2016 9:08 pm

Re: Randomisierung mit R

Beitrag von FridaKoriander »

Hallo Bernhard,

tut mir leid, dass ich es nicht klar genug dargestellt habe. Nichtsdestotrotz hilft mir deine Antwort auf jeden Fall weiter, besten Dank dafür! Und nein, es sind keine Hausaufgaben, sondern ich benötige es tatsächlich im echten Leben ;-)

Vielen Dank für den Tipp und viele Grüße
Frida
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Randomisierung mit R

Beitrag von bigben »

Hallo Frida,

> tut mir leid, dass ich es nicht klar genug dargestellt habe.

Leid tun ist nicht die richtige Kategorie. Bei meiner Kritik ging es um die Nützlichkeit für das echte Leben. Da solltest Du Dir Gedanken machen um so Fragen wie: Müssen nur mindestens zwei Ziffern gleich sein oder dürfen auch drei oder vier Ziffern gleich sein. Darf pro Ziffernfolge jede Ziffer nur einmal vorkommen oder auch mehrfach. Darf jedes Listenpaar nur einmal vorkommen, oder darf dieselbe Kombination mehrfach vorkommen?

Aber wenn es auch so nützlich ist, umso besser.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Randomisierung mit R

Beitrag von jogo »

Hallo Frida,

schau mal, ob das passt:

Code: Alles auswählen

set.seed(42)
genListpaar <- function() {
  z <- sample.int(9, 6)
  i <- sample.int(4, 2)
  x <- integer(4); y <- x
  x[i] <- z[1:2]; y[i] <- z[1:2]
  x[-i] <- z[3:4]; y[-i] <- z[5:6]
  list(x, y)
}
replicate(7, genListpaar(), simplify = FALSE)
Gruß, Jörg
Antworten