Seite 1 von 1
sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 3:41 pm
von timduncan200
hallo zusammen,
folgende Frage
Ich habe eine Datenreihe mit monatlichen Werten von 1971 bis 08.2019.
Ich habe zu Beginn eine Variable definiert, die 2019 minus 1971 rechent. Dies ist dann meine Jahreszahl (Jahre = 48)
Wenn im Januar 2020 neue Werte vorhanden sind, passt der fest definierte Vektor nicht.
Frage: Wie schaffe ich es den Eingangsvektor so variabel zu halten, dass sich dieser mit neuen Jahren automatisch erneuert?
Danke für Anregungen
Re: sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 4:28 pm
von bigben
Hallo timduncan200,
Ich verstehe Dein Problem nicht. Wenn Du immer die Jahreszahl einer Beobachtung minus 1971 rechnest hast Du immer die Anzahl der Jahre seit Beginn der Beobachtungen. Wo ist das Problem?
LG,
Bernhard
Re: sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 5:41 pm
von timduncan200
Hallo Bernhard,
mir geht es darum, dass ich keine Berechnungen mehr persönlich durchführen muss. Ich möchte die Variable Jahresanzahl, so flexibel gestalten, dass sich diese automatisch um ein Jahr erneuert, wenn wir ein neues haben. Mit der Variable Jahresanzahl rechene ich dann im Skript weiter.
BG Stephen
Re: sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 7:31 pm
von bigben
Hallo Stephen,
ohne wesentlich mehr Kontext verstehe ich das nicht. Variablen erneuern sich nicht. Du kannst Code schreiben, der Die Variable erneuert.
LG,
Bernhard
Re: sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 10:55 pm
von EDi
Ich verstehe es auch nicht...
Code: Alles auswählen
data <- 1971:2019
data-1971
newdata <- 1971:2019
newdata-1971
myfunction <- function(x, ref = 1971) {
x - ref
}
myfunction(data)
myfunction(data, 1972)
myfunction(newdata)
myfunction(newdata, 1972)
mir geht es darum, dass ich keine Berechnungen mehr persönlich durchführen muss. Ich möchte die Variable Jahresanzahl, so flexibel gestalten, dass sich diese automatisch um ein Jahr erneuert, wenn wir ein neues haben.
Wenn du automatisieren willst (ohne persönliche durchführung), dann schreib einen cron-job [ https://de.wikipedia.org/wiki/Cron ] der dein R-Skript aufruft (z.B. mit Rscript <deinscript.R>).
Aber das ist ohne Kontext alles nur spekulation...
Re: sich selbst erweitender Vektor
Verfasst: Di Okt 01, 2019 11:20 pm
von EDi
Das hier wäre auch ein "sich selbst erweitender Vektor":
Code: Alles auswählen
x <- NULL
while(length(x) < length(x) + 1) {
message("Vektor lenght: ", length(x))
x <- c(x, 1)
}
Re: sich selbst erweitender Vektor
Verfasst: Mi Okt 02, 2019 8:56 am
von timduncan200
Sorry, dass ich mich so kompliziert ausdrücke. R ist noch ein wenig neu für mich.
Nochmal ein Versuch.
Für mich persönlich geht es darum, dass ich zu Beginn des Skriptes eine Variable (Jahreszahl=49) fix definiert habe. Zahlenreihe von 1971=1 bis 2019=49.
Diese definiere ich zu Beginn des Skriptes einmal und arbeite damit im Skript weiter. Beispielsweise, wenn es darum geht die Daten so aufzubereiten, dass ich damit arbeiten kann oder innerhalb der mit den Spalten verbundenen Jahreszahl ein Subset bilde.
Wenn durch meinen Downloadbefehl neue Daten eingeladen werden (sprich 2020), stimmt die definierte Variable Jahreszahl ja nicht mehr, da ein neues Jahr hinzugekommen ist.
In der Hoffnung, dass es nun ein wenig verständlicher ist.
Danke Euch allen
Re: sich selbst erweitender Vektor
Verfasst: Mi Okt 02, 2019 8:59 am
von timduncan200
Hey EDI, dein Beispiel kommt dem was ich versuche schon ganz nahe. In deiner ersten Antwort ist 2019 aber ebenfalls fix definiert. Wenn ich ein neues Jahr habe muss sich meine Variable durch einen Code erweitern
Re: sich selbst erweitender Vektor
Verfasst: Mi Okt 02, 2019 9:04 am
von jogo
Hallo Stephen,
willkommen im Forum!
Bitte gib uns ein reproduzierbares Beispiel mit Daten und Code
(siehe
viewtopic.php?f=20&t=11 ); nur so sind konkrete (d.h. für Dich passende Antworten möglich).
Gruß, Jörg
Re: sich selbst erweitender Vektor
Verfasst: Mi Okt 02, 2019 9:14 am
von bigben
Hallo timdoncan200,
die Erwähnung eines Skripts macht die Anfrage schon verständlicher. Zuvor hatte ich an sowas wie Zellen in Excel gedacht, die sich ja tatsächlich selbst erneuern. Jörg hat mit seinem Post recht, dennoch mache ich einen Versuch Codebeispiel. Wenn das nicht trifft, schick bitte auf das minimum eingekürzten aber verständlichen Code.
Nehmen wir an, Du hast eine Zahlenreihe, mit lauter Jahreszahlen darin:
Code: Alles auswählen
Zahlenreihe <- c(1971, 1971, 1971, 1972, 1973, 1973, 1974)
Dann bestimmt sich die Anzahl der darin vorhandenen verschiedenen Jahre zu
Alternativ der Abstand zwischen kleinster und größter Zahl:
LG,
Bernhard