Base R中是否存在安全的seq()惯用写法?
解决Base R中
seq(0)不符合预期的问题 你可以用以下几种Base R原生方式实现预期效果,无需自定义函数:
- 使用
seq_len():这是最直接的方案,seq_len(0)会返回integer(0),完全符合需求。它的设计初衷就是生成从1到n的序列,当n=0时自然返回空整数向量,是这类场景的最优选择。 - 使用
seq.int():指定起始和终止值,比如seq.int(1, 0)会返回integer(0),不过写法不如seq_len()直观。
举个验证例子:
seq_len(0) # 返回 integer(0) seq_len(5) # 返回 1 2 3 4 5
对比seq(0)的非预期结果:
seq(0) # 返回 1 0
日常场景里优先用seq_len()替代seq(n),就能避开这个问题。
内容的提问来源于stack exchange,提问作者Ben Bolker
相关产品推荐
相关产品推荐

