这个问题不言自明。但是必须有一个理由让R中的多个函数做同样的事情。
在循环中,是seq_len()之一还是:就速度而言更优选?
文档并未在我看来讲述完整的故事。
答案 0 :(得分:1)
首先请注意,seq_len(x)
显然比seq()
更有限:前者生成从1到x的向量,而后者允许任意的开始,结束和增量。
如果
x <- numeric(0)
y <- length(x)
你得到了
1:y
[1] 1 0
但
seq_len(y)
integer(0)
所以前者在处理数组时可能是一个问题。
最后seq_len()
比seq()
快。正如您对问题的评论中所提出的,这可以从一个简单的基准来看:
benchmark(seq(1,10^7),seq_len(10^7))
test replications elapsed relative user.self sys.self user.child
2 seq_len(10^7) 100 1.880 1.000 0.992 0.801
1 seq(1, 10^7) 100 2.645 1.407 1.094 0.940