【问题标题】:How can I satisfy my woes with R's `:` operator?我怎样才能用 R 的 `:` 运算符来解决我的问题?
【发布时间】:2011-08-18 21:45:03
【问题描述】:

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,我会更喜欢它 提供这种功能的包(如果不是的话,最好替换: 危险的)。我试图搜索一个,但找不到它。

这样的事情存在吗?

【问题讨论】:

    标签: r operators sequence


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 不错。虽然它需要算术来推广到a:b
    • @欧文算术!?惊恐的事件!惊恐的事件! ;)
    • @Owen,已经添加了一些相关信息。
    • @Brandon Bertelsen -
    • @Brandon @ChrisW 这里是必要的,因为a 对函数set.zero 来说是非本地的
    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 2023-01-01
    • 2019-04-10
    • 1970-01-01
    • 2022-06-10
    • 2020-11-28
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多