Seite 1 von 1
Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors
Verfasst: Mi Apr 08, 2020 3:38 pm
von Bill
Hallo Leute,
ich habe z.B.
Code: Alles auswählen
V1 <- c(1,3,40,2,9,30, 6,5)
V2 <- c(2,17,11,44)
nun möchte ich mit der Funktion
append() die Komponenten von V2 an zufälliger Stelle in V1 hinzufügen.
Habt ihr eine Idee wie ich das Argument
after= der Funktion append() dafür nutzen kann um o.g. Ziel zu erreichen?
Lieben Dank
Bill
Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors
Verfasst: Mi Apr 08, 2020 3:47 pm
von jogo
Hallo Bill,
willkommen im Forum!
Code: Alles auswählen
V1 <- c(1,3,40,2,9,30, 6,5)
V2 <- c(2,17,11,44)
append(V1, V2)
append(V1, V2, after=2)
append(V1, V2, after=0)
pos <- sample.int(1, size=1+length(V1))-1
append(V1, V2, after=pos)
... eventuell mit Zuweisung:
Gruß, Jörg
Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors
Verfasst: Mi Apr 08, 2020 7:36 pm
von Bill
Hallo Jogo,
vielen Dank für deine Antwort.
Leider bekomme ich diese Fehlermeldung wenn ich das von dir skizzierte Objekt 'pos' erstelle:
Code: Alles auswählen
Fehler in sample.int(1, size = length(V1)) :
kann keine Stichprobe größer als die Grundgesamtheit nehmen
wenn 'replace = FALSE'
Ich hatte es folgendermaßen probiert gehabt:
mit der Hoffnung, dass die Komponenten von V2 jeweils an den Stellen "sample(1:length(V1),4)" in den Vektor V1 hinzugefügt werden.
Dies klappte jedoch nicht.
Freundliche Grüße
Bill
Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors
Verfasst: Mi Apr 08, 2020 8:18 pm
von jogo
Hallo Bill,
entschuldige bitte, da war ein Fehler im Code; richtig ist:
Code: Alles auswählen
pos <- sample.int(n=1+length(V1), size=1)-1
append(V1, V2, after=pos)
Wenn ich Dich recht verstanden habe, möchtest Du die Elemente von V2 jeweils einzeln an zufällige Stellen in den Vektor V1 einsetzen, richtig? Die Reihenfolge der Elemente von V1 soll unverändert bleiben.
Code: Alles auswählen
V1 <- c(1,3,40,2,9,30, 6,5)
V2 <- c(2,17,11,44)
Vneu <- numeric(length(V1)+length(V2))
pos <- sample.int(length(Vneu), length(V2))
Vneu[pos] <- V2
Vneu[-pos]<- V1
Gruß, Jörg
p.s.: Bitte beachte bei Deinen Nachrichten
viewtopic.php?f=20&t=29
Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors
Verfasst: Do Apr 09, 2020 12:09 pm
von Bill
Hallo Jörg,
dein letzter Code-Block tut genau das, was ich erreichen wollte.
Lieben Dank dafür.
Freundliche Grüße
Bill