Sprung von 0 auf 1 zählen

For(), If(), While() und Verwandte. Diskussion von programmiertechnischen Fragen.

Sprung von 0 auf 1 zählen

Beitragvon Carmen » Mi 15. Mai 2013, 16:37

Hallo,

ich habe Minuten Daten eines ganzen Jahres mit 0 und 1-Werten, wobei die aussagen, dass das Gerät an oder aus ist. Ich möchte nun zählen wie oft das Gerät anläuft, das heißt von 0 auf 1 springt bzw. wie oft es aus ist. Kann man irgendwie sagen, wenn die Werte 0 und 1 hintereinandervorkommen bzw 1 und 0 und dann soll das System +1 zählen? Außerdem möchte ich das ganze pro Tag haben, d.h. wie oft lädt das System pro Tag und das möchte ich dann statistisch auswerten.

Bei einem meiner vielen Versuche (siehe Code), weiß ich, dass hier eigentlich die Summe eines Jahres ausgegeben werden müsste, nur scheitere ich schon daran, denn es kommt immer die Fehlermeldung Bedingung hat Länge > 1. Das dürfte igendwas mit der Schleife zu tun haben, nur weiß ich nicht genau woran der Fehler liegt. Außerdem benötigen Schleifen ja sehr lange, wie könnte ich das mit lapply etc anwenden? Hab mir schon so viele Beispiele angesehen, nur ich kanns einfach nicht auf meine Dinge übertragen.

Code: Alles auswählen
> Summe_Beladung <- 0
> while (Signal_Beladung == 1){
+   Summe_Beladung <- Summe_Beladung +1
+ print (Summe_Beladung)
+   }
Warnmeldung:
In while (Signal_Beladung == 1) { :
  Bedingung hat Länge > 1 und nur das erste Element wird benutzt


VG Carmen
Carmen
 
Beiträge: 7
Registriert: Fr 10. Mai 2013, 14:52
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Sprung von 0 auf 1 zählen

Beitragvon STATWORX » Do 16. Mai 2013, 22:57

Hallo,

Beispieldaten:

Code: Alles auswählen
data <- sample(c(0,1), 100, replace=TRUE)
d <- abs(diff(data))
count <- sum(d)


VG
STATWORX
STATWORX
Administrator
 
Beiträge: 283
Registriert: So 25. Sep 2011, 16:17
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Sprung von 0 auf 1 zählen

Beitragvon Carmen » Di 21. Mai 2013, 11:48

Hallo Statworx,

ja soweit funktioniert das ja, aber das zählt ja auch die Werte, wenn es von 1 auf 0 springt, die sollen erst im nächsten Schritt extra gezählt werden. Es müsste eigentlich irgendwie mit rle funktionieren, aber ich möchte es ja für jeden Tag extra darstellen und da scheitere ich noch. Hast du da eventuell einen Vorschlag wie ich das machen könnte?

Lg Carmen
Carmen
 
Beiträge: 7
Registriert: Fr 10. Mai 2013, 14:52
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Programmierkonzepte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron