2011-08-18 9 views
5

Rの:オペレータは、いくつかのよく知られている落とし穴があります。Rの `:`演算子で私の悲しみをどうやって満たすことができますか?

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

私はちょうど1:0空 ベクトルを与えるが、合理的に簡潔なbaseがあった場合、私はそれを好むを作ることによって、これを解決機能を書くことができCRAN そのような機能を提供しているパッケージ(理想的には、を置き換えても 危険です)。私は1つを検索しようとしましたが、それを見つけることはできません。

このようなことはありますか? seq(1, length = n)が同様に動作することを

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

注:

答えて

6

はこれを試してみてください。

+0

ニース。ただし、a:bに一般化するには算術演算が必要です。 – Owen

+1

@Owen算術!?ホラー!ホラー! ;) – joran

+0

@Owen、それについての情報を追加しました。 –

関連する問題