Einzelne Werte mit -1 multiplizieren
-
- Beiträge: 37
- Registriert: Do Dez 01, 2016 9:08 pm
Einzelne Werte mit -1 multiplizieren
Ich müsste in meinem Datensatz (s. Anhang) alle Reaktionszeiten (rt) der nicht korrekten Antworten (corr = 0) mit -1 multiplizieren. Kann mir da jemand weiterhelfen....?
Vielen Dank schon mal und viele Grüße!
Re: Einzelne Werte mit -1 multiplizieren
Hallo Frida,
eine Möglichkeit ist:eine andere Möglichkeit:
oder
Viele Grüße, Jörg
eine Möglichkeit ist:
Code: Alles auswählen
test$rt[test$corr==0] <- -test$rt[test$corr==0]
Code: Alles auswählen
test <- within(test, rt <- ifelse(corr==0, -rt, rt))
Code: Alles auswählen
test$rt <- with(test, ifelse(corr==0, -rt, rt))
Re: Einzelne Werte mit -1 multiplizieren
Hey Jörg, hast Du
vergessen?
LG,
Bernhard
Code: Alles auswählen
test$rt <- test$rt*(1 - 2*[test$corr==0])
LG,
Bernhard
---
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: Einzelne Werte mit -1 multiplizieren
jein, eher habe ich so eine Lösung nicht in Erwägung gezogen.bigben hat geschrieben:Hey Jörg, hast Duvergessen?Code: Alles auswählen
test$rt <- test$rt*(1 - 2*[test$corr==0])
Als ich programmieren gelernt habe, lautete ein Grundsatz: Multiplikationen sind teuer
Meine Vorschläge kommen ganz ohne Multiplikationen aus. Ich bin sogar der Meinung, dass ich mich an die von Dir ausgerufene Programmiermaxime gehalten habe und sozusagen kantig programmiert habe.
Sicher gibt es noch viele andere Möglichkeiten, um das genannte Problem zu lösen.
Viele Grüße
Jörg
-
- Beiträge: 37
- Registriert: Do Dez 01, 2016 9:08 pm
Re: Einzelne Werte mit -1 multiplizieren
Hallo zusammen
vielen Dank für die Hilfe!
Es hat mit Jörgs ersten Vorschlag gut geklappt.
Viele Grüße!
vielen Dank für die Hilfe!
Es hat mit Jörgs ersten Vorschlag gut geklappt.
Viele Grüße!
Re: Einzelne Werte mit -1 multiplizieren
@jogo: "-rt" ist keine Multiplikation?
---
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: Einzelne Werte mit -1 multiplizieren
wenn das mit der internen Zahlendarstellung immer noch so ist, wie ich es gelernt habe, dann ist es nur ein Invertieren des Vorzeichenbits.bigben hat geschrieben:@jogo: "-rt" ist keine Multiplikation?
https://en.wikipedia.org/wiki/IEEE_floating_point
https://de.wikipedia.org/wiki/IEEE_754#Allgemeines
R scheint hier aber eine tolle Leistung beim Interpreter abzuliefern:
Code: Alles auswählen
library(microbenchmark)
x <- rnorm(10000)
microbenchmark(m0= 0-x, chsign= -x, mult= -1*x, mult.dec=-1.0*x, mult2=2.1*x, times=1000)
Nachtrag: komisch, bei einem weiteren Lauf war auch mult2 kaum langsamer.
Viele Grüße, Jörg
Re: Einzelne Werte mit -1 multiplizieren
Hallo Jörg,
ich hätte nicht gedacht, dass ein Interpreter soweit optimiert und diese Fälle unterscheidet. Die Fallunterscheidung kostet dann ja bei jeder Multiplikation wieder CPU-Zyklen. Entweder unterschätzen ich, wie teuer Multiplikationen sind, oder ich unterschätzen, wie oft dieser Spezialfall vorkommt.
Liebe Grüße,
Bernhard
ich hätte nicht gedacht, dass ein Interpreter soweit optimiert und diese Fälle unterscheidet. Die Fallunterscheidung kostet dann ja bei jeder Multiplikation wieder CPU-Zyklen. Entweder unterschätzen ich, wie teuer Multiplikationen sind, oder ich unterschätzen, wie oft dieser Spezialfall vorkommt.
Liebe Grüße,
Bernhard
---
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: Einzelne Werte mit -1 multiplizieren
Hallo Bernhard,
Oder der Interpreter löst den Vorzeichenoperator auch nur in eine Multiplikation auf, womit Du Recht hättest mit "-x ist eine Multiplikation".
Liebe Grüße,
Jörg
vielleicht muss der Interpreter nur einmal über die Eingabezeile drüber; oder hackt das Paket microbenchmark den R-Interpreter?bigben hat geschrieben:ich hätte nicht gedacht, dass ein Interpreter soweit optimiert und diese Fälle unterscheidet. Die Fallunterscheidung kostet dann ja bei jeder Multiplikation wieder CPU-Zyklen.
oder hier hat sich in den vergangenen 30 Jahren etwas bei den Prozessoren getan, dass eine multiplikation nicht merklich teurer ist als eine einfache Bit-Operation.Entweder unterschätzen ich, wie teuer Multiplikationen sind, oder ich unterschätzen, wie oft dieser Spezialfall vorkommt.
Oder der Interpreter löst den Vorzeichenoperator auch nur in eine Multiplikation auf, womit Du Recht hättest mit "-x ist eine Multiplikation".
Liebe Grüße,
Jörg
Re: Einzelne Werte mit -1 multiplizieren
Jedenfalls hast Du sehr schön kantig programmiert!
---
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