R:Int与向量中的Num异常

pra*_*nav 6 floating-point int r

我正在研究R编程的入门,并注意到一个轻微的异常:

  • x <- c(2,1,1,5) 生成一个类型的向量 num
  • y <- c(1:5) 生成一个类型的向量 int
  • z <- c(1.5,2.3) 生成一个类型的向量 num

为什么会这样?什么是基本数据类型R:是int或是它num?如果向量中的一个元素是a float,那么向量的类型会变成float或者是其他东西会发生什么?当向量中的所有元素都是float- 为什么它仍然num在那种情况下会发生什么?

Dir*_*tel 5

有两个不同的问题在起作用:

  1. c(2, 1, 1, 5)明确创建numeric类型.因为integer,你必须使用,c(2L, 1L, 1L, 5L)因为只有后缀L确保创建一个integer类型(或铸造通过as.integer()等).但请继续阅读......

  2. c(1:5)历史的覆盖中:发挥作用.因为用法几乎总是涉及整数序列,所以你得到的是:整数.

这两种形式都有记录,所以它不像您的问题标题所暗示的那样异常.

  • Python练习在这里无关紧要.请查看[R语言定义手册](http://cran.r-project.org/doc/manuals/r-release/R-lang.html).此外,R只有"整数",并且不同大小的整数之间没有区别(即没有"long int"或"long long int"). (4认同)
  • R遵循S约定.S比Python早,所以问题可能就是为什么Python偏离现有的做法. (2认同)
  • 我很难想到有关这个话题的更多话题.R不会改变. (2认同)