r - seq_len(x) 总是比 1 快吗 :x in R? 一个比另一个更受欢迎吗?

标签 r

这个问题不言自明。但是在 R 中有多个函数可以做同样的事情肯定是有原因的。
在循环内,是 seq_len() 之一或 :在速度方面更受欢迎?
在我看来,文档并不能说明全部情况。

最佳答案

首先要注意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

关于r - seq_len(x) 总是比 1 快吗 :x in R? 一个比另一个更受欢迎吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162359/

相关文章:

r - 将矩阵列表除以不同的矩阵集

r - 如何制作 "pretty rounding"?

r - 我在哪里可以找到 R 中 Kolmogorov-Smirnov 距离的极限分布?

r - dplyr 版本的数据框分组然后在每组上创建回归模型

r - 将数据框转换为 R 中具有适当标签的列表

r - lm(offense$R ~ offence$OBP) 和 lm(R ~ OBP) 有什么区别?

r - ggplot - 使中位数不可见 geom_boxplot

R:如何将列表列表(来自 strsplit)折叠为一个列表并保留一些行数据?

r - Foreach 循环仅针对第一组工作人员返回错误消息

r - 如何计算带标签的多类分类AUC?