我想在Python中使用R,由模块Rpy2提供。我注意到R具有非常方便的[]
操作,您可以通过它来提取特定的列或行。我怎么能通过Python脚本实现这样的功能呢?
我的想法是创建一个R向量并将这些想要的元素添加到此向量中,以便最终向量与R中的相同。我创建了一个seq()
,但它似乎有一个初始数字1,所以最终的结果总是从数字1开始,这不是我想要的。那么,有更好的方法吗?
答案 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
的文档