2011-08-18 13 views
5
Operator

R : ma kilka dobrze znanych gier:Jak mogę zaspokoić moje nieszczęścia za pomocą operatora R `:`?

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

Mogłem po prostu napisać funkcję, która rozwiązuje to przez uczynienie 1:0 pustym wektorem , ale wolałbym, gdyby był dość zwięzły base lub Pakiet CRAN , który dostarczył taką funkcję (najlepiej zastępując :, jeśli nie jest to niebezpieczne ). Próbowałem go znaleźć, ale nie mogę go znaleźć.

Czy coś takiego istnieje?

Odpowiedz

6

Spróbuj tego:

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

Zauważ, że seq(1, length = n) działa tak samo.

+0

Nice. Chociaż generowanie arytmetyczne wymaga "a: b". – Owen

+1

@Awen Arytmetyka !? Horror! Horror! ;) – joran

+0

@Owen, dodaliśmy trochę informacji na ten temat. –

Powiązane problemy