【问题标题】:What are the restrictions on seq.int?seq.int 有什么限制?
【发布时间】:2020-04-10 05:30:04
【问题描述】:

seq 手册页声明如下(强调我的):

说明

生成常规序列。 seq 是具有默认方法的标准泛型。 seq.int 是一个原语,它可以更快但有一些限制

不过,该页面实际上并未描述这些限制是什么。这是seq.int 的所有其他提及:

参数

[...]

length.out 所需的序列长度。一个非负数,对于seqseq.int,如果是小数,则会四舍五入。

[...]

详情

[...]

seqseq.int的未命名参数的解释不规范,建议在编程时始终命名参数。

[...]

seq.int 是一个内部泛型,它根据第一个提供的参数的类(在参数匹配之前)调度“seq”的方法。

seq.intseq_alongseq_len 是原始的。

价值

seq.int 和用于数字参数的默认方法 seq 返回“integer”或“double”类型的向量:程序员不应依赖哪个。

除了声明seq.int 根据其第一个参数的类调度seq 之外,我没有看到任何“限制”。

那么,这些限制是什么?

【问题讨论】:

  • 好点,我将补充一点,seq 的帮助文件中给出的所有示例都与seq.int 相同,只是速度快得多,所以不清楚为什么使用seq at全部。可能与twitter.com/BrodieGaslam/status/1196792003813621761有关
  • @Moody_Mudskipper 这正是我问的原因:我一直在使用 seq.int 出于习惯,但在手册页中看到了该评论,现在我想知道我是否一直在使用随意使用它的任何“风险”。
  • @Moody_Mudskipper 并且郑重声明,“文档从未更新”将是一个完全可以接受且不足为奇的答案。
  • 我会说“对于 seq(仅),最多可以提供两个 from、to 和 by seq 方法将使用 Math、Ops 和 Summary 组泛型的方法处理分类对象。”解释了一个限制。 seq(from = 0 + 1i, to = 10 + 1i, length.out = 11) 可以,但seq.int 不能这样做。
  • @Roland - 也许您应该添加该评论作为答案

标签: r


【解决方案1】:

seq 是用 R 编写的标准泛型函数。seq.int 是用 C 编写的原始函数。虽然它们都是为完成相同的工作而编写的,但由于其平台的怪癖,它们有时可以具有某些限制。下面是一个例子。

请注意,这是来自旧版本的 R,并且在当前版本中已修复。在整个 R 的开发过程中都观察到了这些类型的错误,并且已尽快对其进行修补。 seqseq.int 的当前版本现在看起来几乎相同。所以,seq.int 应该没有更多的限制了。

【讨论】:

  • 感谢您的回答,您能否发布代码(例如,reprex)而不是图像,并在您的答案中包含 Roland 的评论(如果他没有同时发布自己的答案)。如果您觉得合适,我也可以编辑您的答案并自己完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多