r - 序列构造,如果lower大于上限,则创建一个空序列

标签 r sequence

seq的极端情况下,R的lower == upper - 1函数的“聪明”使我深受其害:

> 1:0
[1] 1 0
> seq(1, 0)
[1] 1 0
> seq(1, 0, 1)
Error in seq.default(1, 0, 1) : wrong sign in 'by' argument

我并不是在问这种奇怪行为的原因,而是因为它只是我们必须忍受的遗产。相反,我想知道是否有任何程序包实现了seq运算符,该运算符在这种情况下会返回空序列,如下所示:
safe.seq.int <- function(from, to, by=1) {
  if (from > to) integer(0) else seq.int(from, to, by)
}

> safe.seq.int(1, 0)
integer(0)

最佳答案

正是出于这个原因,使用seq_len(n)而不是1:n是一个好习惯-如果是n=0,那么您会得到一个空序列而不是c(1,0)

希望这可以帮助

关于r - 序列构造,如果lower大于上限,则创建一个空序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10922169/

相关文章:

swift - stride(from : 0. 0, to : 10. 0, by : 2. 0) 使用 Float 类型而不是 Double?

r - 如何更有效地使用map_dfr()对数据集进行filter()?

r - Shiny:选择是在窗口中、查看器 Pane 中还是在外部运行应用程序

algorithm - 将序列切割成两个同质部分

f# - 从 F# 中的序列构造中调用函数

sequence - derby语法错误:遇到EOF下一个值序列

c++ - 试图绘制部分巨大源代码的序列图

r - 在两列上使用 Rollapply

r - 热图生成

r - R 和 2 个条件中的条件和