5 Stimmen

Wie kann ich meine Sorgen mit dem `:`-Operator von R befriedigen?

R's : hat einige bekannte Tücken:

a = c(1, 2, 3)
set.zero = function(n) a[1:n] <<- 0
set.zero(0)
# `a` is now c(0, 2, 3)

Ich könnte einfach eine Funktion schreiben, die das Problem löst, indem ich 1:0 eine leere Vektor, aber ich würde es bevorzugen, wenn es eine einigermaßen prägnante base oder CRAN Paket, das eine solche Funktion bereitstellt (idealerweise als Ersatz für : wenn das nicht zu viel ist gefährlich ist). Ich habe versucht, danach zu suchen, aber ich kann es nicht finden.

Gibt es so etwas?

6voto

G. Grothendieck Punkte 232059

Versuchen Sie dies:

set.zero = function(n) a[seq_len(n)] <<- 0

Beachten Sie, dass seq(1, length = n) funktioniert ebenfalls.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X