我怎样才能用R的`:`运算符来解决我的困境?

时间:2011-08-18 21:45:04

标签: r operators sequence

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 个答案:

答案 0 :(得分:6)

试试这个:

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

请注意seq(1, length = n)也可以。