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

lig*_*win 85 python r vector rpy2

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

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

Rom*_*rik 50

我预先分配了一个矢量

> (a <- rep(NA, 10))
 [1] NA NA NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用[]向其中插入值.


Aar*_*ham 23

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

vec <- numeric(0)
Run Code Online (Sandbox Code Playgroud)

然后使用c()添加元素

vec <- c(vec, 1:5)
Run Code Online (Sandbox Code Playgroud)

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


JoF*_*wld 6

我也看过

x <- {}
Run Code Online (Sandbox Code Playgroud)

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

rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)
Run Code Online (Sandbox Code Playgroud)

  • 这与 `x &lt;- NULL` 完全相同,并且除了对无处的引用之外不会创建任何其他内容。 (3认同)

小智 5

要创建一个空向量,请使用:

vec <- c();
Run Code Online (Sandbox Code Playgroud)

请注意,我对您需要的向量类型(例如数字)不做任何假设。

创建矢量后,可以按如下所示向其中添加元素:

例如,要添加数值1:

vec <- c(vec, 1);
Run Code Online (Sandbox Code Playgroud)

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

vec <- c(vec, "a");
Run Code Online (Sandbox Code Playgroud)

  • 您实际尝试过吗?vec &lt;-c()将vec设置为NULL。如果您想要一个空向量,可以使用vec &lt;-character(),vec &lt;-numeric()等。 (3认同)