sich selbst erweitender Vektor

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

Moderatoren: EDi, jogo

Antworten
timduncan200
Beiträge: 4
Registriert: Di Okt 01, 2019 3:24 pm

sich selbst erweitender Vektor

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: sich selbst erweitender Vektor

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
timduncan200
Beiträge: 4
Registriert: Di Okt 01, 2019 3:24 pm

Re: sich selbst erweitender Vektor

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: sich selbst erweitender Vektor

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: sich selbst erweitender Vektor

Beitrag 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...
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.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: sich selbst erweitender Vektor

Beitrag 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)
}
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.
timduncan200
Beiträge: 4
Registriert: Di Okt 01, 2019 3:24 pm

Re: sich selbst erweitender Vektor

Beitrag 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
timduncan200
Beiträge: 4
Registriert: Di Okt 01, 2019 3:24 pm

Re: sich selbst erweitender Vektor

Beitrag 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
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: sich selbst erweitender Vektor

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: sich selbst erweitender Vektor

Beitrag 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

Code: Alles auswählen

Jahreszahl <- length(unique(Zahlenreihe))
Alternativ der Abstand zwischen kleinster und größter Zahl:

Code: Alles auswählen

Jahreszahl <- max(Zahlenreihe) - min(Zahlenreihe)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten