如何创建空R矢量以添加新项目

时间:2010-08-05 10:39:49

标签: python r vector rpy2

我想在Python中使用R,由模块Rpy2提供。我注意到R具有非常方便的[]操作,您可以通过它来提取特定的列或行。我怎么能通过Python脚本实现这样的功能呢?

我的想法是创建一个R向量并将这些想要的元素添加到此向量中,以便最终向量与R中的相同。我创建了一个seq(),但它似乎有一个初始数字1,所以最终的结果总是从数字1开始,这不是我想要的。那么,有更好的方法吗?

7 个答案:

答案 0 :(得分:88)

vec <- vector()

另见矢量帮助

?vector

答案 1 :(得分:47)

我预先分配了一个带

的矢量
> (a <- rep(NA, 10))
 [1] NA NA NA NA NA NA NA NA NA NA

然后您可以使用[]在其中插入值。

答案 2 :(得分:21)

您可以像这样创建一个空矢量

vec <- numeric(0)

然后使用c()

添加元素
vec <- c(vec, 1:5)

然而正如romunov所说,预先分配一个向量然后填充它会好得多(因为这样可以避免每次添加元素时重新分配向量的新副本)

答案 3 :(得分:4)

我也见过

x <- {}

现在,您可以将任何维度的向量连接或绑定到x

rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)

答案 4 :(得分:3)

要创建空矢量,请使用:

vec <- c();

请注意,我不会对您需要的矢量类型做出任何假设,例如:数字。

创建矢量后,您可以按如下方式添加元素:

例如,要添加数值1:

vec <- c(vec, 1);

或者,添加字符串值“a”

vec <- c(vec, "a");

答案 5 :(得分:2)

正如Brani所指出的,vector()是一种解决方案,例如

newVector <- vector(mode = "numeric", length = 50)

将返回名为&#34; newVector&#34;的向量用50&#34; 0&#34;作为初始值。将新标量添加到现有向量以获得扩展向量也是相当普遍的,例如

aVector <- c(aVector, newScalar)

答案 6 :(得分:1)

在rpy2中,使用“。”获得与“。”相同的运算符的方法是使用“.rx”。 请参阅有关extracting with rpy2

的文档

对于创建向量,如果您了解Python的方法,那么应该没有任何问题。 请参阅有关creating vectors

的文档