Seite 2 von 3

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 1:03 pm
von larsmu
Weil R spuckt mir dann ja nur in der Konsole das hier aus:

Code: Alles auswählen

> dput(enden)
structure(c(2488.38, 4509.8, 2545.21, 3988.94, 5581.81, 6189.44, 
6391.61, 6236.95, 6395.16, 7536.19), .Dim = 10L, .Dimnames = list(
    c("2005", "2006", "2007", "2008", "2009", "2010", "2011", 
    "2012", "2015", "2016")))
aber wie bekomme ich die beiden Vektoren dann in unterschiedliche Variablen.

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 1:05 pm
von jogo
Hallo Lars,

das Ergebnis ist ein Vektor, wie Dir str(ende) berichtet. Das andere sind die Namen:

Code: Alles auswählen

names(ende)
Du möchtest die Namen löschen? Dann:

Code: Alles auswählen

names(ende) <- NULL
ende # Kontrolle
oder möchtest Du einen Dataframe daraus machen:

Code: Alles auswählen

data.frame(jahr=names(ende), ende=ende) # oder vielleicht sogar:
data.frame(jahr=as.numeric(names(ende)), ende=ende)
Gruß, Jörg

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 1:30 pm
von larsmu
Ich habe ja nun 1 dimensionalen Vektor aus welchen ich keine Zeile rausnehmen kann sondern nur Spalten. Ich würde aber gerne eine Regression der Werte machen wie ziehe ich die erste Zeile in einen Vektor und wie die 2 in einen anderen?
Im Moment sieht mein Ergebnis nämlich so aus:

Code: Alles auswählen

> enden
   2005    2006    2007    2008    2009    2010    2011    2012    2015    2016 
2488.38 4509.80 2545.21 3988.94 5581.81 6189.44 6391.61 6236.95 6395.16 7536.19 
>

aber ich hätte es gerne irgendwie so:

Code: Alles auswählen

x<- c(2488.38, 4509.8, 2545.21, 3988.94, 5581.81, 6189.44,6391.61, 6236.95, 6395.16, 7536.19)
y<-c("2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2015", "2016")

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 2:06 pm
von larsmu
Hat niemand für mein Problem eine Lösung?

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 2:10 pm
von bigben
Doch, Antworten haben wir, aber nicht immer an einem Werktag zur besten Arbeitszeit innerhalb einer halben Stunde. Dank Deinem dput weiß ich jetzt, wie Deine Daten aussehen und schlage vor:

Code: Alles auswählen

y <- as.numeric(names(enden))
summary(lm(enden ~ y))
plot(enden ~ y, type="b")
abline(lm(enden ~ y), lty=2)
'enden' ist schon ein Vektor, aber ein Vektor, dessen einzelne Werte Namen haben. Du brauchst also keine Variable x, weil enden schon alles hat, was Du Dir von x wünschst. Die Namen der Einträge von enden kann man mit names() extrahieren, muss die Namen dann aber noch in Zahlen umwandeln mit as.numeric().

LG,
Bernhard

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 2:35 pm
von larsmu
Vielen Dank!!
So bekomme ich die Jahre in den Vektor aber wie bekomme ich die Umsätze in einen Vektor?

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 3:57 pm
von larsmu
Oder ist das nicht möglich?

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 4:00 pm
von bigben
Ich dachte, 'enden' sei ein Vektor mit den Umsätzen? Ist er das nicht? Dann erkläre mir bitte nochmal, was 'enden' ist und wo die Umsätze stehen...
Ich habe extra in einem Edit die Grafik hinzugefügt, damit Du Dich vergewissern kannst, ob jetzt in der linearen Regression die richtigen x mit den richtigen y verrechnet wurden.

Verwirrte Grüße,
Bernhard

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 4:19 pm
von jogo
Hallo Lars,

ich nehme jetzt mal die Daten von dem Vektor enden - dort sollten ja laut Konstruktion die Umsätze für jedes Jahr aufsummiert sein. Wenn ich Dich richtig verstanden habe, möchtest Du folgendes machen:

Code: Alles auswählen

enden <- 
structure(c(2488.38, 4509.8, 2545.21, 3988.94, 5581.81, 6189.44, 
            6391.61, 6236.95, 6395.16, 7536.19), .Dim = 10L, .Dimnames = list(
              c("2005", "2006", "2007", "2008", "2009", "2010", "2011", 
                "2012", "2015", "2016")))

d <- data.frame(jahr=as.numeric(names(enden)), umsatz=enden)
lm(umsatz ~ jahr, data=d)
regr <- lm(umsatz ~ jahr, data=d)
summary(regr)
Ergebnis:

Code: Alles auswählen

> summary(regr)

Call:
lm(formula = umsatz ~ jahr, data = d)

Residuals:
     Min       1Q   Median       3Q      Max 
-1452.15  -621.35    19.24   761.91   962.09 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept) -818862.33  165089.30  -4.960  0.00111 **
jahr            409.99      82.14   4.992  0.00106 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 903.1 on 8 degrees of freedom
Multiple R-squared:  0.757,	Adjusted R-squared:  0.7266 
F-statistic: 24.92 on 1 and 8 DF,  p-value: 0.001064
Wenn das nicht passend ist, einfach nochmal ruhig uns erklären, was Du machen möchtest.

Gruß, Jörg
p.s.:

Code: Alles auswählen

plot(umsatz ~ jahr, data=d)

Re: Frage zur for Schleife

Verfasst: Do Jun 29, 2017 5:53 pm
von larsmu
Genau das hab ich gemeint vielen Dank, wie du daraus aber jetzt die Tabelle gemacht hast kann ich noch nicht wirklich nachvollziehen, aber das bekomme ich denke ich schon hin. Vielen Dank nochmal.