Frage zu runif-Funktion - Grenzen des Bereichs definieren

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

Moderatoren: EDi, jogo

Antworten
hempfiar

Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von hempfiar »

Hallo Zusammen,

ich bin ein R-Novize und versuche mich derzeit durch Kurzunterlagen zum Thema "Programmierung in R" zu wühlen. Hierbei bin ich, recht am Anfang, auf eine Fragestellung gestoßen, die ich mir selber nicht ganz beantworten kann und hoffe hier im Forum eine Antwort zu finden. Wie folgt ist die Fragstellung: "Initiieren Sie einen Vektor der Länge n=1000. Füllen Sie den Vektor, indem jedes zweite Element (beginnend mit dem 1.) einen gerundeten Zufallszug einer uniformen (d.h. gleichverteilten) Verteilung enthält. Dabei sollen die Grenzen des Bereichs aus denen die einzelnen Zufallszahlen erzeugt werden, von 0 bis 1, 1 bis 2, ...,500 bis 501 verlaufen." Soweit bin ich schon:

Code: Alles auswählen

bsp <- vector(mode = "numeric",length = 1000)
fig <- runif(500)
rfig <- round(fig,2)
Nun bin ich aber verwirrt, wie ich das anstellen kann die Grenzen des Bereichs entsprechend der Angabe zu definieren und 500 der 1000 Werde dann "random" zu ersetzen. In einem ähnlichen Beispiel hab ich das dann durch die Funktion

Code: Alles auswählen

sample.int
gemacht. Komm hier aber nicht weiter und würde es echt gerne verstehen!

Danke im Voraus!

Beste Grüße
Alex
Zuletzt geändert von jogo am Mi Nov 09, 2016 10:19 am, insgesamt 1-mal geändert.
Grund: tags korrigiert
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von bigben »

Hallo Alex,

runif(10) erzeugt 10 Zufallswerte zwischen 0 und 1. runif(10)+5 erzeugt also zehn Zufallswerte zwischen 5 und 6.

Was glaubst Du ist das Ergebnis von

Code: Alles auswählen

runif(501)+(0:500)
?

Nur so als Gedankenanstoß. Ist noch keine vollständige Lösung, ist aber schon nahe dran. Kommst Du mit dem Rest allein klar? Und: Hast Du den Fehler in der Aufgabenstellung schon gefunden?

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

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von hempfiar »

Hallo Bernhard,

vielen Dank für deine Antwort und entschuldige bitte meine verspätete Rückantwort!

Ich hab soweit alles geschafft, nur konnte ich die 500 erzeugten Zufallsvariablen nicht in den Vektor einfügen. Auch hab ich deinen Hinweis bzgl. des Fehlers in der Fragestellung nicht gefunden...:)

Beste Grüße
Alex
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von jogo »

Hallo Alex,

ich verstehe folgendes an der Aufgabenstellung nicht:
wenn ich in einem Vektor mit 1000 Elementen jedes zweite Element verändern soll, dann sollen doch wohl 500 Elemente verändert werden. Warum sind dann aber 501 Intervalle angegeben, aus denen die Zufallszahlen stammen sollen?

Ansonsten sieht meine Lösung so aus:

Code: Alles auswählen

bsp <- numeric(1000)
i <- seq(1,999, by=2)
bsp[i] <- round(runif(500), 2) + (0:499)
oder

Code: Alles auswählen

bsp <- matrix(numeric(1000), 2)
bsp[1,] <- round(runif(500), 2) + (0:499)
c(bsp) # falls man einen Vektor haben möchte
Gruß, Jörg
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von bigben »

Donald Trump wird Präsident der Vereinigten Staaten von Nordamerika! :o Das hat zwar nichts mit dem Thread zu tun, musste aber mal raus.

Den Fehler in der Fragestellung ja Jörg ja schon beschrieben.
Ich hab soweit alles geschafft, nur konnte ich die 500 erzeugten Zufallsvariablen nicht in den Vektor einfügen.
Was hast Du denn geschafft? Ich dachte, das Einfügen dieses Vektors in einen längeren wäre das Einzige, was noch zu tun ist? viewtopic.php?f=20&t=35

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

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von hempfiar »

Hallo Zusammen,

hab das jetzt entsprechend so gelöst :)

Code: Alles auswählen

n <- 1000
meinVektor <- numeric(n)
meinVektor[seq(1,n,2)] <- round(runif(n/2, min = 0:500, max = 1:501))
meinVektor
Kommt auf jeden Fall das richtige Ergebnis raus.

Beste Grüße
Alex
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Frage zu runif-Funktion - Grenzen des Bereichs definieren

Beitrag von bigben »

Du hast es anders gelöst als von mir vorgeschlagen, das spricht für's selber denken. Glückwunsch zur gelösten Aufgabe.

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