Seite 3 von 4

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 3:58 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 4:01 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 4:10 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 4:19 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 4:20 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Do Feb 20, 2020 8:03 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: So Feb 23, 2020 6:26 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: So Feb 23, 2020 10:14 pm
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Mo Feb 24, 2020 10:05 am
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

Re: Hinzufügen vervielfachter Zeilen in neuen Dataframe

Verfasst: Mo Feb 24, 2020 2:28 pm
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