Frage zur for Schleife
Frage zur for Schleife
Guten Abend ich hab ein Problem ich habe eine Tabelle in der Jahre, Preis und Menge drin stehen.
Nun möchte ich den Umsatz der Jahre 2005 - 2010 ausrechnen und in einer Tabelle einzeln nach Jahr gegliedert darstellen.
einzeln kann ich die Umsätze ausrechnen das ist kein Problem nur in der Schleife leider nicht.
Hier wäre die Berechnung eines Jahres:
"jahre<- which(tabelle[,"jahr"]== "2005")
jahren<- tabelle[jahre,]
umsatz5<-sum(jahren[,"menge"]*jahren[,"preis"])
umsatz5"
ich hab mich auch schon an der Schleife versucht, aber komme leider nicht auf das Ergebnis.
"ende<- c()
for (i in 1:6)
{
year<-which(tabelle[,"jahr"] == "i+2004")
datenyear<-tabelle[year,]
ende<-sum(datenyear[,"menge"]*datenyear[,"preis"])
}
ende"
Nun möchte ich den Umsatz der Jahre 2005 - 2010 ausrechnen und in einer Tabelle einzeln nach Jahr gegliedert darstellen.
einzeln kann ich die Umsätze ausrechnen das ist kein Problem nur in der Schleife leider nicht.
Hier wäre die Berechnung eines Jahres:
"jahre<- which(tabelle[,"jahr"]== "2005")
jahren<- tabelle[jahre,]
umsatz5<-sum(jahren[,"menge"]*jahren[,"preis"])
umsatz5"
ich hab mich auch schon an der Schleife versucht, aber komme leider nicht auf das Ergebnis.
"ende<- c()
for (i in 1:6)
{
year<-which(tabelle[,"jahr"] == "i+2004")
datenyear<-tabelle[year,]
ende<-sum(datenyear[,"menge"]*datenyear[,"preis"])
}
ende"
Re: Frage zur for Schleife
Wir brauchen zur Lösung Deines Problems die Struktur der Tabelle, namentlich die R Antwort auf den Befehl
Code: Alles auswählen
str(<tabelle>)
Irmgard.
Re: Frage zur for Schleife
> str(tabelle)
'data.frame': 270 obs. of 4 variables:
$ jahr : int 2005 2005 2006 2005 2005 2005 2005 2006 2005 2005 ...
$ staat: chr "Deutschland" "Deutschland" "Deutschland" "Deutschland" ...
$ preis: num 6.94 21.42 37.89 19.06 29.62 ...
$ menge: int 4 7 7 10 9 1 5 5 4 7 ...
'data.frame': 270 obs. of 4 variables:
$ jahr : int 2005 2005 2006 2005 2005 2005 2005 2006 2005 2005 ...
$ staat: chr "Deutschland" "Deutschland" "Deutschland" "Deutschland" ...
$ preis: num 6.94 21.42 37.89 19.06 29.62 ...
$ menge: int 4 7 7 10 9 1 5 5 4 7 ...
Re: Frage zur for Schleife
Irgendwie ist bei dem R code etwas verloren gegangen :
er sieht eigentlich so aus
er sieht eigentlich so aus
Code: Alles auswählen
ende<- c()
for (i in 1:6)
{
year<-which(tabelle[,"jahr"] == "i+2004")
datenyear<-tabelle[year,]
ende[<i>]<-sum(datenyear[,"menge"]*datenyear[,"preis"])
}
ende
Re: Frage zur for Schleife
Hallo larsmu,
willkommen im Forum!
Bitte lies die Themen im Bereich FAQ viewforum.php?f=20
besonders: viewtopic.php?f=20&t=29
(sprich: verwende die Code-Formatierungen)
oder
Gruß, Jörg
willkommen im Forum!
Bitte lies die Themen im Bereich FAQ viewforum.php?f=20
besonders: viewtopic.php?f=20&t=29
(sprich: verwende die Code-Formatierungen)
Code: Alles auswählen
tabelle$umsatz <- tabelle$preis * tabelle$menge
ende <- tapply(tabelle$umsatz, tabelle$jahr, FUN=sum)
Code: Alles auswählen
ende <- with(tabelle, tapply(preis*menge, jahr, FUN=sum))
Re: Frage zur for Schleife
Nur noch eine Frage. Ich bekomme ja nun die Jahre oben heraus und die Umsätze darunter. Wie bekomme ich die Umsätze jetzt in einen Vektor und die Jahre in einen Vektor da ich gerne noch eine Regression machen möchte.
MfG Lars
MfG Lars
Re: Frage zur for Schleife
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
2488.38 4509.80 2545.21 3988.94 5581.81 6189.44 6391.61 6236.95 6395.16 7536.19
Re: Frage zur for Schleife
Code: Alles auswählen
str(ende)
Code: Alles auswählen
dput(ende)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Frage zur for Schleife
Aber dann bekomme ich doch nur 2 Vektoren angezeigt aber kann sie doch nicht weiter verwenden oder??
Hab mir sowas vorgestellt wie:
x<- c(2005,2006,2007,....)
y<-c(umsatz1,umsatz2,...)
Hab mir sowas vorgestellt wie:
x<- c(2005,2006,2007,....)
y<-c(umsatz1,umsatz2,...)