我喜欢使用seq()
R 中的命令来创建从零开始的序列。但是当我输入例如
seq(0:14)
我得到以下输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
我究竟做错了什么?
正如其他人所说,你想要0:14
或seq(from=0,to=14)
得到你不想要的结果的原因也值得注意。
在这种情况下,冒号运算符本身(如 中所述?':'
)正在生成所需的常规整数序列,然后您将其提供给seq()
.
seq()
猜测您的意思seq(along.with = 0:14)
是返回与您提供的东西长度相同的序列。当然,它使用的是默认值from = 1
。所以它给你一个从一个开始的十五个整数的序列。大致类似于这样:
(x <- 0:14)
# [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
seq(along.with = x, from = 1)
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
尽管导致您遇到错误,但此along.with
功能对于制作与某些向量/列表/矩阵长度相同的序列显然很有用:
seq(c(1,"w",5,6,NA))
# [1] 1 2 3 4 5
而且我们不能说?seq
没有警告我们命名我们的论点:
seq 和 seq.int 的未命名参数的解释不标准,建议在编程时始终命名参数。
你的意思是做
0:14
或者
seq(0, 14)
您的问题在于语法。i:j 创建一个从数字 i 到 j 的序列;例如 1:5 可以读作 1 到 5 或 1,2,3,4,5。
另一方面,函数 seq 接受一个 'to' 参数和一个 'from' 参数,这两个参数都必须是单个数字。输入 seq(0:14) 意味着将一个向量——而不是单个数字——传递给 seq 的参数之一。
你想要的是
seq(from=0, to=14)
希望有帮助
seq(0, 14)
为我得到以下输入:
[1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14