Hinzufügen vervielfachter Zeilen in neuen Dataframe

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

Moderatoren: EDi, jogo

Jeffgo
Beiträge: 11
Registriert: Do Feb 20, 2020 10:34 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von Jeffgo »

jogo hat geschrieben: Do Feb 20, 2020 3:48 pm
Jeffgo hat geschrieben: Do Feb 20, 2020 3:41 pm Im Dataframe sind nun 53172 Zeilen statt 53182. D.h. 100 Zeilen des Ursprunglüchen Datensatzes waren mit der Häufigkeit 0 oder habe ich einen Denkfehler?
Da hast Du einen Denkfehler.
Die Anzahl der Datensätze, bei denen Freq den Wert 0 hat, bekommst Du mit

Code: Alles auswählen

sum(Dataset_Suicide_Rates_in_Germany$Freq==0)
In Deinem Output ist die Differenz 10. Bitte richtig lesen: 10 Zeilen werden angezeigt und dann steht dort 53172 more rows (... not shown)

Gruß, Jörg
Hallo Jörg,

da hatte ich wohl einen Denk- & Rechenfehler :lol:
Danke für die Erläuterung.

Gruß Jeff
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von bigben »

Hallo Jeff,

freut mich, dass es so geklappt hat.
Jeffgo hat geschrieben: Do Feb 20, 2020 3:41 pmIm Dataframe sind nun 53172 Zeilen statt 53182.
Wie Jörg schon geschrieben hat, sind es die zehn angezeigten und weitere 53172. Wahrscheinlich findet der Erfinder des tibbles Kopfrechnen gut. Die Gesamtzahl der Zeilen steht übrigens in der ersten Zeile Deines Outputs.
Oben im R-Input bekomme leuchetet ein rotes X neben den Befehlen auf und ich bekomme den Hinweis: "expectet "," after expression"
Das ist von hier aus nicht nachvollziehbar. Hört sich so an, als sei es keine Warnung von R sondern eine Warnung des RStudio-Editors. Das würde ich erstmal nachrangig interessant finden, wenn R selbst mit dem Code zufrieden ist. Du wirst Dich jetzt der Frage zuwenden müssen, wie Du testen willst. Kann schon sein, dass Du dann nochmal auf schubbiaschwillis Beiträge zurückkommen wirst.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von jogo »

So, jetzt mal Butter bei die Fische.

Hier ist der Datensatz und dessen Beschreibung:

Code: Alles auswählen

D <- read.csv(row.names=1, "https://raw.github.com/vincentarelbundock/Rdatasets/master/csv/vcd/Suicide.csv")
head(D)
https://vincentarelbundock.github.io/Rd ... icide.html

Der Datensatz gehört zum Paket vcd und heißt dort Suicide (siehe das Beispiel in der Beschreibung).
Das Beispiel in der Beschreibung kann eventuell auch einen Ansatz für die Auswertung liefern.

Gruß, Jörg
Jeffgo
Beiträge: 11
Registriert: Do Feb 20, 2020 10:34 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von Jeffgo »

Hallo Jörg,

danke noch einmal für das Teilen des Datensatzes und der Beschreibung.

Ich werde mich nun erstmal an das Analysieren wagen und ggf. nochmal auf die Hilfe hier zurückkommen.

Nochmal vielen lieben Dank an alle, die mich hier unterstützt haben. :)

Gruß
Jeff
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von schubbiaschwilli »

Gude!
bigben hat geschrieben: Do Feb 20, 2020 3:54 pm @Schubbiaschwilli
schubbiaschwilli hat geschrieben: Do Feb 20, 2020 3:46 pmJe nach Kombination der Ausprägungen, muss ich die Summen bilden, ja - und?
Und? Ich mag falsch liegen, aber ich traue das dem OP nicht zu. Du?
... und in einem Dataframe mit 53k Zeilen zählen ist besser bzw. einfacher? Und vor allem: Was ganz anderes?

Dank&Gruß
Schubbiaschwilli
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von jogo »

Hallo Jeff,

dieses Vervielfachen der Datensätze - ist das wirklich nötig?
Sollte nicht etwa sowas ausreichen:

Code: Alles auswählen

D <- read.csv(row.names=1, "https://raw.github.com/vincentarelbundock/Rdatasets/master/csv/vcd/Suicide.csv")
### oder   library("vcd"); D <- Suicide
head(D)
sum(D$Freq) ### wieviele Fälle wurden erhoben?
xtabs(Freq ~ sex + method2, data=D)
sum(xtabs(Freq ~ sex + method2, data=D)) ### noch alles da? ja!
chisq.test(xtabs(Freq ~ sex + method2, data=D))
:?:

Gruß, Jörg
Jeffgo
Beiträge: 11
Registriert: Do Feb 20, 2020 10:34 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von Jeffgo »

Hallo Zusammen,

ich melde mich nochmal am Ende meiner Datenanalyse und hoffe noch einmal hier Unterstützung zu finden. Die letzte Forschungsfrage soll im Zuge einer Multiplen-Regression stattfinden.
Mein Problem ist es aber, dass mein Datensatz nur eine metrische und ansonsten kategoriale Variablen aufweist.

Code: Alles auswählen

> summary(DSRiG_neu)
      Freq            sex               method               age         age.group        
 Min.   :   1.0   Length:53182       Length:53182       Min.   :10.00   Length:53182      
 1st Qu.: 250.0   Class :character   Class :character   1st Qu.:35.00   Class :character  
 Median : 624.0   Mode  :character   Mode  :character   Median :45.00   Mode  :character  
 Mean   : 626.6                                         Mean   :47.45                     
 3rd Qu.: 916.0                                         3rd Qu.:65.00                     
 Max.   :1381.0                                         Max.   :90.00           


Die Forschungsfrage lautet "Können das Geschlecht und die Methode Indikatoren für das Alter eines Selbstmörders sein? "

Um z.B. die Korrreltationskoeffizienten von dem Alter und des Geschlechts oder dem Alter und die Methoden zu berechnen, müssen alle Variablen numerisch sein.

Da stehe ich leider nun völlig auf dem Schlauch. Kann man die Variablen umcodieren?

Vielen Dank & beste Grüße
Jeff
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von bigben »

Jeffgo hat geschrieben: So Feb 23, 2020 6:26 pmDa stehe ich leider nun völlig auf dem Schlauch. Kann man die Variablen umcodieren?
Hallo Jeff,

Du wirst erstaunt sein, wieviel Mühe R sich gibt, Dir diese Umcodierung zu ersparen bzw. sie zu automatisieren:

Code: Alles auswählen

bsp <- data.frame(sex = c("m", "w", "m", "w", "w", "m", "w"),
                  score = c(5, 10, 3, 12, 9, 4, 11))
model <- lm(score ~ sex, data = bsp)
summary(model)
plot(score ~ sex, data = bsp)
points(score ~ sex, data =  bsp)
wenn es doch erforderlich werden sollte, dann helfen sog. factors dabei, gleichartige Begriffe zu einer Kategorie zusammenzufassen:

Code: Alles auswählen

bsp2 <- c("rot", "rot", "blau", "gelb", "pink", "rot")
bsp2 <- as.factor(bsp2)
print(bsp2)
print(as.numeric(bsp2))
Die Dummycodierung für solche factors übernimmt R automatisch für Dich, wie in dem Beispiel mit lm weiter oben, wo "sexw" im Ergebnis für die Dummyvariable sex="w" steht.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Jeffgo
Beiträge: 11
Registriert: Do Feb 20, 2020 10:34 am

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von Jeffgo »

Hallo Bernhard,

danke für deine Hilfe.

Ich habe meinen Datensatz als "bsp" eingefügt und erhalte folgendes Ergebnis:

Code: Alles auswählen

> DSRiG_neu <- data.frame (sex = c("m", "w", "m", "w", "w", "m", "w"),
+                   score = c(5, 10, 3, 12, 9, 4, 11))
> model <- lm(score ~ sex, data = DSRiG_neu)
> summary(model)

Call:
lm(formula = score ~ sex, data = DSRiG_neu)

Residuals:
         1          2          3          4          5          6          7 
 1.000e+00 -5.000e-01 -1.000e+00  1.500e+00 -1.500e+00  2.776e-16  5.000e-01 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4.0000     0.6831   5.855 0.002059 ** 
sexw          6.5000     0.9037   7.193 0.000809 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.183 on 5 degrees of freedom
Multiple R-squared:  0.9119,	Adjusted R-squared:  0.8942 
F-statistic: 51.73 on 1 and 5 DF,  p-value: 0.0008088

> plot(score ~ sex, data = DSRiG_neu)
Error in plot.new() : figure margins too large
> points(score ~ sex, data =  DSRiG_neu)
Error in plot.xy(xy.coords(x, y), type = type, ...) : 
  plot.new has not been called yet
Im Modell erhalte ich nur Angaben zu "sexw". Ist das so richtig?
Die Plots führt R nicht aus.

Liebe Grüße
Jeff
Zuletzt geändert von jogo am Mo Feb 24, 2020 10:32 am, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Beitrag von EDi »

Im Modell erhalte ich nur Angaben zu "sexw". Ist das so richtig?
Ja, wieso fragst du?

Du kannst da gleiche Model aber auch ohne Intercept parametriesieren, dann bekommst du Mittelwerte als estimates. Das Model bleibt aber das gleiche...

Code: Alles auswählen

score ~ 0 + sex
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten