我想在模块Rpy2提供的Python中使用R。我注意到R有非常方便的操作,通过这些操作你可以提取特定的列或行。我怎样才能通过Python脚本实现这样的功能?如何创建一个空的R向量来添加新项目
我的想法是创建一个R向量并将这些向量添加到该向量中,以便最终向量与R中的最终向量相同。我创建了一个seq()
,但似乎它有一个初始数字1,所以最终结果总是以数字1开始,这不是我想要的。那么,有没有更好的方法来做到这一点?
我想在模块Rpy2提供的Python中使用R。我注意到R有非常方便的操作,通过这些操作你可以提取特定的列或行。我怎样才能通过Python脚本实现这样的功能?如何创建一个空的R向量来添加新项目
我的想法是创建一个R向量并将这些向量添加到该向量中,以便最终向量与R中的最终向量相同。我创建了一个seq()
,但似乎它有一个初始数字1,所以最终结果总是以数字1开始,这不是我想要的。那么,有没有更好的方法来做到这一点?
我预分配的载体与
> (a <- rep(NA, 10))
[1] NA NA NA NA NA NA NA NA NA NA
然后可以使用[]将值插入它。
您可以创建一个像这样
vec <- numeric(0)
空载体,然后添加使用C()元素
vec <- c(vec, 1:5)
然而,随着romunov说,这是更好的预分配一个载体,然后填充它(因为这避免了每次添加元素时重新分配向量的新副本)
我也看到
x <- {}
现在,您可以连接或任何尺寸的载体结合x
rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)
这与'x < - NULL'完全相同,并且不会创建任何东西而不是引用无处。 – 2013-12-20 14:24:23
在rpy2的方式来获得与R的“[”非常相同的运算符是使用“.rx”。 请参阅有关文档extracting with rpy2
要创建向量,如果您知道使用Python解决问题,则不应该有任何问题。 查看文档关于creating vectors
我曾经为此创建了一个函数,这是非常复杂的,我不确定它可以应用到多大范围。现在我认为,与这个运营商,生活可以更容易:) – ligwin 2010-08-07 12:01:59
正如Brani指出的,vector()是一个解决方案,例如,
newVector <- vector(mode = "numeric", length = 50)
将返回与50的 “0” 的作为初始值的名为 “newVector” 载体。将新标量添加到现有矢量以获得扩展矢量也是相当常见的,例如,
aVector <- c(aVector, newScalar)
要创建一个空的载体使用:
vec <- c();
请注意,我不是在矢您需要的类型,例如任何假设数字。
一旦载体已创建可以如下添加元素到它:
例如,添加的数字值1:
vec <- c(vec, 1);
,或者添加一个字符串值“a”
vec <- c(vec, "a");
你真的试过这个? 'vec < - c()'将vec设置为'NULL'。如果你想要一个空向量,你可以使用'vec < - character()','vec < - numeric()'等 – 2015-10-09 16:25:54
你不需要'c()'。 'a <-rep(NA,10)'起作用。我们可以通过使用特定类型的NA,例如'rep(NA_integer_,10)'(见'help(“NA”)')来强制向量类。 – Marek 2010-08-05 11:52:39
当然,你可以剔除c(),这是我的一个高级时刻。好的信息马雷克,谢谢。 – 2010-08-05 12:30:13