Addition mit numerischen (0) Werten

Oct 06 2020

Angenommen, x ist eine reelle Zahl oder ein Vektor. Ich bin geschätzt-Falsch. Dann gibt x [i] numerisch (0) zurück. Ich möchte dies als eine reelle Zahl 0 oder eine ganze Zahl 0 behandeln, die beide zur Addition geeignet sind.

Die Zahl (0), die zu einer reellen Zahl hinzugefügt wird, gibt die Zahl (0) zurück, während ich die reelle Zahl erhalten möchte, die als Ergebnis hinzugefügt wird. Was kann ich tun, um den numerischen Wert (0) zu konvertieren? Danke im Voraus!

Antworten

2 akrun Oct 07 2020 at 01:58

Nur wenn wir das tun +, ist es ein Problem. Dies kann vermieden werden, wenn wir verwendensum

sum(numeric(0), 5)
#[1] 5
sum(numeric(0), 5, 10)
#[1] 15

Oder wenn wir verwenden müssen, +ist es eine einfache Option, mit 0dem ersten Element zu verketten . Wenn das Element numeric(0)durch 0 ersetzt wird, bleibt das erste Element in anderen Fällen intakt

c(numeric(0), 0)[1]
#[1] 0

An einem kleinen Beispiel

lst1 <- list(1, 3, numeric(0),  4, numeric(0))
out <- 0
for(i in seq_along(lst1)) {
       out <- out + c(lst1[[i]], 0)[1]
  }

out
#[1] 8
RonakShah Oct 07 2020 at 07:54

Sie können max/ minmit 0 verwenden, um 0 als Ausgabe zu erhalten, wenn die Eingabe erfolgt numeric(0).

x <- 1:10
max(x[FALSE], 0)
#[1] 0

min(x[FALSE], 0)
#[1] 0