我正在寻找R资源,然后开始在r-project.org上查看“R简介” here。我做到了,立即陷入了困境。
我想我已经知道发生了什么,我的问题基本上是
容易地?
R简介的前言建议从附录A中的介绍性 session 开始,并且正好是此代码和备注。
x <- rnorm(50)
y <- rnorm(x)
Generate two pseudo-random normal vectors of x- and y-coordinates.
文档说
rnorm
的(第一个也是唯一的非可选)参数是结果向量的长度。因此,x <- rnorm(50)
从正态分布中产生平均值为0,标准差为1的50个随机值的向量。到现在为止还挺好。但是,为什么
rnorm(x)
似乎可以完成y <- rnorm(50)
或y <- rnorm(length(x))
会做的事情?这些替代方法中的任何一种在我看来都更加清晰。我对发生的事情的猜测是:
rnorm
的包装器并不关心x
是什么类型,只是将指向struct
的C x
的指针作为R对象传递给底层C函数。 除了我的主要问题“如何更轻松地找出类似的东西?”之外,我不介意知道我认为正在发生的事情是否正确以及在这种情况下
rnorm(x)
是否是惯用R的事实或更多。一个草率的选择。鉴于它可以做些有用的事情,对于R中未明确定义的表达式,它是否可以被依赖还是仅仅是幸运的行为?我习惯于使用强类型语言(例如C或SQL),这些语言具有易于理解的语言(对我而言),并且还具有更全面的引用,因此,对于R的任何引用都以编程语言理论为重点或针对那些习惯于强类型打字的人也将是一件好事。
最佳答案
它已记录为行为。从?rnorm
:
Usage: [...]
rnorm(n, mean = 0, sd = 1)
Arguments: [...]
n: number of observations. If ‘length(n) > 1’, the length is taken to be the number required.
关于r - 如果x是向量,这是rnorm(x)的工作,我怎么能更快地找到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419690/