2015年8月25日,星期二

用R简单有趣

我正在学习编程 语言R,并认为入门的一个好方法是玩一些我以前发布过的简单示例。您可以采用以下任何示例,并通过将代码直接复制到浏览器内R环境(例如, 小提琴.

这里的两个婴儿R示例使用R中的一些内置数学函数(, cos和 sqrt),并说明 vector-based R采取的方法。在R中,而不是使用a进行迭代 要么 对于 循环并将函数应用于各个值,许多函数都是“向量化的”,因此您可以为函数提供一个完整的参数向量,它将为您进行迭代。希望您能在下面的示例中明白我的意思。

示例1:李沙育的数字



















R提供了多种创建向量的方式-单个数据类型的有序集合。创建矢量的一种方法,该矢量只是形式的序列 n,n + 1,n + 2,... k 是使用冒号表示法 n:k. 这里(示例1a)一些基本原始输入( t)具有比例因子 f 适用于它。当您将一个“标量”(实际上,在R中是一个单元素的矢量)乘以一个矢量时,该标量将应用于该矢量的每个元素(您可能会想到)以产生一个新的矢量。有点不那么期望的功能是 罪()向量化 -如果您提供一个向量作为参数,则它们将产生一个大小与结果相同的向量,并且返回的向量的内容就是将函数应用于每个元素所期望的结果。

情节() 函数灵活-当提供单个矢量时(示例1a),它将绘制有序对(x, y)将向量的元素用作 y 反对的价值观 x 从向量中每个元素的位置(其索引)推断出的值。提供两个向量(示例1b)时,第一个向量提供 x 值,第二个 y 值(通常,当两个向量的长度不相等,而一个向量的长度是另一个向量的倍数时,R会执行一些“回收”行为)。最后, 情节() 函数提供了一些用于格式化输出的其他参数。

 如前所述,可以在Geometer的Sketchpad中采用一种非常不同的“合成”方法绘制lissajous图形。 这里.

示例2:音轴螺旋

















需要习惯的事情: 平方(t)* cos(t) 不仅是两个数字的乘法,它还是两个向量(数字列表)的位置乘积: t 是向量 平方根(t) 是由元素的平方根组成的向量 t, cos(t) 是由元素的余弦组成的向量 t平方(t)* cos(t) 是由元素乘以 i的第 平方根(t)i的第 成本)。这不是向量相乘的正常“数学”方式,但是在R中始终使用它来实现其独特的向量化编程模型。

在Fathom和Tinkerplots中有一些较旧的关于绘制螺旋的帖子(请参阅 这里),以及处理中(请参见 这里)。

FWIW,这些简单的例子都在 的github -也许以后会有更多人加入。