Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

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

Moderatoren: EDi, jogo

Antworten
Bill
Beiträge: 35
Registriert: Fr Mär 06, 2020 8:04 pm

Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

Beitrag 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
Zuletzt geändert von jogo am Mi Apr 08, 2020 3:42 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2088
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

Beitrag 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:

Code: Alles auswählen

Vneu <- append(V1, V2, after=pos)
Gruß, Jörg
Bill
Beiträge: 35
Registriert: Fr Mär 06, 2020 8:04 pm

Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

Beitrag 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:

Code: Alles auswählen

Vneu <- append(V1,V2,after = sample(1:length(V1),4))
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
Zuletzt geändert von jogo am Mi Apr 08, 2020 8:16 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert, siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2088
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

Beitrag 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
Bill
Beiträge: 35
Registriert: Fr Mär 06, 2020 8:04 pm

Re: Hinzufügen von Komponenten zu einem Vektor an zufällig ausgewählten Positionen des Vektors

Beitrag von Bill »

Hallo Jörg,

dein letzter Code-Block tut genau das, was ich erreichen wollte.
Lieben Dank dafür.


Freundliche Grüße

Bill
Antworten