Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

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

Moderatoren: EDi, jogo

Antworten
Stefan
Beiträge: 22
Registriert: So Apr 12, 2020 9:49 am

Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von Stefan »

Hallo,

ich habe einen Datensatz mit Songs die von den Jahren 1979 - 2019 reichen.
In jedem dieser Jahre wurde eine bestimmte Punkteanzahl an verschiedene Songs vergeben.

Das Minimum an Punkten pro Song liegt hier bei 2 Punkten und das Maximum liegt bei 140 Punkten.

Ich möchte jetzt die Songs ausgeben, die mindestens 10 Punkte erreicht haben.

Kann mir hierzu jemand eine Hilfestellung geben, wie ich dies ausgeben kann?

Viele Grüße

Stefan
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von schubbiaschwilli »

Gude!

Schau mal nach subset.

Dank&Gruß
Schubbiaschwilli
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von bigben »

Hallo,

an der Stelle führen sehr viele Wege nach Rom. Klingt nach einer Hausaufgabe deshalb würde es auf dem Weg zur "richtigen" Lösung helfen zu wissen, was als letztes durchgenommen wurde. Hier ein paar Vorschläge, längst keine erschöpfende Liste:

Code: Alles auswählen

songs <-  data.frame(title = c("Auf dem dünnen Eis der Liebe",
                               "H E I M A T, ja das heißt Heimat",
                               "Ciao",
                               "Medley"),
                     url = c("https://youtu.be/VqStE7kLZo8",
                             "https://youtu.be/X9ON7l0ETzc",
                             "https://youtu.be/crlRbmH9bt4",
                             "https://youtu.be/0-hyxXXWGKg"
                             ),
                     punkte = c(110, 2, 4, 10))

zeilen <- which(songs$punkte >= 10)
songs[zeilen,]

songs[songs$punkte >= 10,]

subset(songs, punkte >= 10)

for(i in 1:nrow(songs)){
  if(songs[i, "punkte"] >= 10){
    cat(songs[i, "title"])
    cat(" @ ")
    cat(songs[i, "url"])
    cat("\n")
  }
}
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Stefan
Beiträge: 22
Registriert: So Apr 12, 2020 9:49 am

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von Stefan »

Hallo Bernhard,

Danke dir für deine Mühe.

Es ist keine Hausaufgabe sondern eine Hausarbeit.

In dieser Form haben wird das so noch gar nicht durchgenommen.
Es geht hier um einen Datensatz den ich mir individuell ausgesucht habe und diesen nun analysiere.

Das hier ist der erste Teil des Datensatzes:

https://www.directupload.net/file/d/588 ... lh_jpg.htm

Ich habe es nun mit folgendem Code versucht:

# Punkte 80er Dekade
data_80er_Dekade <- subset(rankings, year==1980, 1981, 1982, 1983,
1984, 1985, 1986, 1987, 1988, 1989,
select = c(year, points))

Hier wurden mir aber nur die Punkte von 1980 ausgegeben.

Was habe ich hier falsch gemacht?

Viele Grüße

Stefan
Stefan
Beiträge: 22
Registriert: So Apr 12, 2020 9:49 am

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von Stefan »

Danke für die Hilfestellung.

Ich habe es mit diesem Code hinbekommen:

data_neu <- subset(rankings, year>1979 & year <1990,
select = c(year, points))

Jetzt sind die Daten allerdings noch sehr durcheinander.

Gibt es noch einen Tipp, wie man die Punkte der Jahreszahlen zusammenfassen kann und diese von 1980 an aufsteigend sind?

Viele Grüße

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

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von bigben »

Stefan hat geschrieben: Do Jul 16, 2020 9:48 amGibt es noch einen Tipp, wie [...] diese von 1980 an aufsteigend sind?
Klar, mit order. Siehe z. B. https://de.wikibooks.org/wiki/GNU_R:_Um ... %C3%A4tzen

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Stefan
Beiträge: 22
Registriert: So Apr 12, 2020 9:49 am

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von Stefan »

Danke Bernhard, hat super geklappt.

Mir wird jetzt diese Datenreihe ausgegeben.

year points
200 1980 6
305 1980 2
4 1982 90
35 1982 18
76 1983 10
101 1983 10
153 1983 6
36 1984 18
233 1985 4
37 1986 18
187 1986 6
189 1986 6
12 1987 36
71 1987 10
98 1987 10
122 1987 8
147 1987 8
295 1987 2
15 1988 32
27 1988 22
56 1988 12
77 1988 10
107 1988 8
178 1988 6
204 1988 4
212 1988 4
2 1989 100
93 1989 10
140 1989 8
150 1989 8
168 1989 6
222 1989 4

Nach der Eingabe des Codes:

tally(year~points, data = data_80er_Dekade)

Habe ich folgende Anzeige:

points
year 2 4 6 8 10 12 18 22 32 36 90 100
1980 1 0 1 0 0 0 0 0 0 0 0 0
1982 0 0 0 0 0 0 1 0 0 0 1 0
1983 0 0 1 0 2 0 0 0 0 0 0 0
1984 0 0 0 0 0 0 1 0 0 0 0 0
1985 0 1 0 0 0 0 0 0 0 0 0 0
1986 0 0 2 0 0 0 1 0 0 0 0 0
1987 1 0 0 2 2 0 0 0 0 1 0 0
1988 0 2 1 1 1 1 0 1 1 0 0 0
1989 0 1 1 2 1 0 0 0 0 0 0 1
>

Zur Vereinfachung möchte ich jetzt noch die Daten so anzeigen lassen, dass die summierte Punktezahl des jeweiligen Jahres ausgegeben werden.

Gibt es hierzu eine einfache Lösung?

Viele Grüße

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

Re: Nur Variablen mit einer bestimmten Punkteanzahl ausgeben

Beitrag von bigben »

Summen von Reihen in data.frames erhält man mit rowSums():

Code: Alles auswählen

bsp <- data.frame(a = 1:4,
                  b = 1:4, 
                  c = 1:4)
bsp$Reihensumme = rowSums(bsp)

bsp


Dabei musst Du natürlich aufpassen, dass Du die Jahreszahl nicht mit addierst.

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