Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von Moritz F. »

Hi zusammen,

ich habe folgendes vor und finde nicht wirklich einen Weg.

Ich habe zehn Tabellen mit jeweils 2 Spalten (X und Y) und diese Tabellen haben immer ca. 17-20 Zeilen mit entprechenden Werten.
Ziel ist es, dass er Tabelle 1 nimmt und 100 zufällige Werte heraus nimmt (die ganze Spalte -> also beide Werte -> also z.B. Zeile 5 und da sind dann die Werte in der X Spalte 4,3 und in der Y Spalte 6,7.
Diese 100 neuen Werte sollen dann in die Zeile 1 von 100 neuen Tabellen schreiben.
Das gleiche soll dann mit Tabelle 2 gemacht werden und diese 100 neuen Werte sollen dann in Zeile 2 der 100 neuen Tabellen.

Ziel ist es dann 100 neue Tabellen zu haben mit insgesamt 10 neuen Werten.

Würde mich sehr freuen wenn mir jemand weiterhelfen kann.

LG
Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von bigben »

Hallo Moritz,

schau mal, ob Dir das hier als Anfang hilft:

Code: Alles auswählen

beispiel <- data.frame(a = 1:17, b = 3:19)
head(beispiel)

# Daraus jetzt eine neue Tabelle mit hundert zufällig gewählten Wertepaaren:
rows <- sample(1:nrow(beispiel), 100, TRUE)
neu <- beispiel[rows,]
head(neu, 30)
Kommst Du damit weiter?
Würde mich sehr freuen wenn mir jemand weiterhelfen kann.
Ich werde das Gefühl nicht los, dass Du uns lieber das zugrundeliegende Problem schildern solltest; siehe https://de.wikipedia.org/wiki/XY_Problem

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von Moritz F. »

Das problem war, dass ich gar nicht wusste wo ich anfangen sollte :idea:
Vielen Dank Bernhard, das hat geklappt. Ich habe die Zahl 30 noch durch 100 ersetzt und jetzt 100 neue Wertepaare erhalten.
Ich habe es vielleicht nicht gut genug erklärt. Hier ein weiterer Versuch.

Ich möchte jetzt, dass diese eben gerade genannten 100 Wertepaare auf 100 neue Tabellen aufgteilt werden.
Ziel ist es also 100 Tabellen zu haben in der in der ersten Zeile ein Wertepaar ist.

Dann habe ich die nächste Tabelle (von insegsamt 10), hier möchte ich wieder 100 verschiedene Wertepaare erzeugen und die sollen dann wieder auf die 100 tabelle aufgteilt werden aber in Zeile 2.

Das möchte ich dann eben für 10 verschiedene Tabellen machen, sodass ich dann 100 Tabellen mit jeweils 10 Werten (Wertepaare) habe.

Vielleicht hättest du mir hier noch weitere Tipps!

LG
Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von bigben »

Moritz F. hat geschrieben: Di Feb 02, 2021 12:56 pmVielen Dank Bernhard, das hat geklappt. Ich habe die Zahl 30 noch durch 100 ersetzt und jetzt 100 neue Wertepaare erhalten.
Wichtiger Tipp: Beschäftige Dich mal damit, was die Funktion head macht.
Ich habe es vielleicht nicht gut genug erklärt. Hier ein weiterer Versuch.
Hast Du meinen Link zum XY-PRoblem gelesen? Ich bitte Dich zu erklären, warum Du glaubst, es sei sinnvoll auf diese Art und Weise 100 Tabellen à 10 Zeilen zu erzeugen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von Moritz F. »

Hi Bernhard,

in den 10 Tabellen stecken Wertepaare (x und y). Ich mächte eine Regressionsgerade rechnen mit jeweils einem Wertepaar aus den 10 Tabellen.
Es ist möglich aus jeder Tabelle ein zufälliges Wertepaar für die Regression zu nehmen.
Letztendlich ist es mein Ziel diesen Prozess zu automatisieren und am Ende mit den 100 Tabelle 100 Regressionsgeraden zu berechen.

LG
Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Zufällige Werte aus einer Tabelle generrieren und in eine neue Tabelle schreiben

Beitrag von bigben »

Ok, das klingt weiter merkwürdig. Egal, wenn Du die Hintergründe nicht weiter offen legen willst, steht Dir das zu. Vielleicht wäre es ganz geschickt, ein Paket für's bootstrapping zu verwenden, aber ich hab jetzt mal was gebastelt, musst halt sehen, wie Du damit zurecht kommst:

Code: Alles auswählen

beispiel1 <- data.frame(a = 1:17, b = 3:19)  # vier verschiedene Ausgangstabellen
beispiel2 <- data.frame(a = rnorm(18), b = rnorm(18))
beispiel3 <- data.frame(a = runif(10), b = runif(10))
beispiel4 <- data.frame(a = LETTERS[1:20], b = letters[1:20])

ausgangsdaten <- list(beispiel1, beispiel2, beispiel3, beispiel4) # Alle Ausgangstabellen werden in einer Liste zusammengefasst.

new.df <- function(n, input = ausgangsdaten){    
  new <- data.frame()
  for(i in 1:length(input)){
    row <- sample.int(nrow(input[[i]]), 1)
    new <- rbind(new, input[[i]][row,])
  }
  return(new)
}

lapply(1:7, new.df, ausgangsdaten) # hier werden 7 neue Tabellen gezogen und in eine Liste 
                                   # verpackt. Aus der 7 kannst Du dann noch eine hundert 
                                   # machen, wenn es sonst passt.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten