我想在 Python 中使用 R,由模块 Rpy2 提供。我注意到 R 具有非常方便[]
的操作,您可以通过这些操作提取特定的列或行。如何通过 Python 脚本实现这样的功能?
我的想法是创建一个 R 向量并将那些想要的元素添加到该向量中,以便最终向量与 R 中的相同。我创建了 a seq()
,但它似乎有一个初始数字 1,所以最终结果总是从数字 1 开始,这不是我想要的。那么,有没有更好的方法来做到这一点?
vec <- vector()
另请参阅矢量帮助
?vector
我预先分配了一个向量
> (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 所说,预先分配一个向量然后填充它要好得多(因为这样可以避免每次添加元素时重新分配一个新的向量副本)
要创建一个空向量,请使用:
vec <- c();
请注意,我不会对您需要的向量类型(例如数字)做出任何假设。
创建矢量后,您可以向其中添加元素,如下所示:
例如,要添加数值 1:
vec <- c(vec, 1);
或者,添加一个字符串值“a”
vec <- c(vec, "a");
我也看过
x <- {}
现在您可以将任意维度的向量连接或绑定到x
rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)
正如 Brani 所指出的,vector() 是一种解决方案,例如
newVector <- vector(mode = "numeric", length = 50)
将返回一个名为“newVector”的向量,其中 50 个“0”作为初始值。将新标量添加到现有向量以获得扩展向量也很常见,例如
aVector <- c(aVector, newScalar)
在 rpy2 中,使用 R 获得与“[”相同的运算符的方法是使用“.rx”。请参阅有关使用 rpy2 进行提取的文档
对于创建向量,如果您了解 Python 的使用方法,则应该没有任何问题。请参阅有关创建向量的文档