【问题标题】:R: different classes of result of seq()R: seq() 的不同类别的结果
【发布时间】:2017-04-19 10:04:11
【问题描述】:

为什么在R中输出如下?

> class(seq(1,10))
[1] "integer"
> class(seq(1,10,1))
[1] "numeric"

是不是因为可以调用seq(1,10,0.5) 从而创建双精度值?但是那我为什么不检查起点和步长是整数还是这太费劲了?

【问题讨论】:

  • seq.int 和数字参数的默认 seq 方法返回“整数”或“双”类型的向量:程序员不应该依赖哪个。
  • 嗯,好的,我应该阅读文档...但它只是定义还是这个选择背后有更基本的东西?
  • 为整数输出提供整数输入,class(seq(1L, 10L, 1L))
  • 请参阅r.789695.n4.nabble.com/…,其中也讨论了这一点,并声称 1 被读取为数字,除非您按照@MartinMorgan 的建议进行操作。他们说,seq.int 也有 int,而不是整数。

标签: r class seq


【解决方案1】:

我认为这是因为您给出的第三个选项。整数不能在 R 中取十进制值,而数字可以。当你在没有第三个参数的情况下定义它时,它将把类作为整数,但是当你定义第三个参数时,它也可以是一个浮点值。所以 R 是这样定义的

【讨论】:

    猜你喜欢
    • 2022-09-26
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多