如何创建空 R 向量来添加新项目

发布于 2024-09-13 04:11:32 字数 226 浏览 9 评论 0原文

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

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

I want to use R in Python, as provided by the module Rpy2. I notice that R has very convenient [] operations by which you can extract the specific columns or lines. How could I achieve such a function by Python scripts?

My idea is to create an R vector and add those wanted elements into this vector so that the final vector is the same as that in R. I created a seq(), but it seems that it has an initial digit 1, so the final result would always start with the digit 1, which is not what I want. So, is there a better way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

德意的啸 2024-09-20 04:11:32
vec <- vector()

另请参阅矢量帮助

?vector
vec <- vector()

See also vector help

?vector
香草可樂 2024-09-20 04:11:32

我预先分配了一个向量

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

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

I pre-allocate a vector with

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

You can then use [] to insert values into it.

霊感 2024-09-20 04:11:32

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

vec <- numeric(0)

然后使用 c() 添加元素

vec <- c(vec, 1:5)

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

You can create an empty vector like so

vec <- numeric(0)

And then add elements using c()

vec <- c(vec, 1:5)

However as romunov says, it's much better to pre-allocate a vector and then populate it (as this avoids reallocating a new copy of your vector every time you add elements)

半仙 2024-09-20 04:11:32

要创建空向量,请使用:

vec <- c();

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

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

例如,添加数值 1:

vec <- c(vec, 1);

或者添加字符串值“a”

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

To create an empty vector use:

vec <- c();

Please note, I am not making any assumptions about the type of vector you require, e.g. numeric.

Once the vector has been created you can add elements to it as follows:

For example, to add the numeric value 1:

vec <- c(vec, 1);

or, to add a string value "a"

vec <- c(vec, "a");
贱人配狗天长地久 2024-09-20 04:11:32

我还看到

x <- {}

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

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

I've also seen

x <- {}

Now you can concatenate or bind a vector of any dimension to x

rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)
黑色毁心梦 2024-09-20 04:11:32

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

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

将返回一个名为 "newVector" 且有 50 个“0”的向量为初始值。将新标量添加到现有向量以获得扩展向量也是相当常见的,例如

aVector <- c(aVector, newScalar)

As pointed out by Brani, vector() is a solution, e.g.

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

will return a vector named "newVector" with 50 "0"'s as initial values. It is also fairly common to just add the new scalar to an existing vector to arrive at an expanded vector, e.g.

aVector <- c(aVector, newScalar)

错々过的事 2024-09-20 04:11:32

在 rpy2 中,使用 R 获得与“[”完全相同的运算符的方法是使用“.rx”。
请参阅有关使用 rpy2 提取的文档< /a>

对于创建向量,如果您了解 Python 的使用方法,那么就不会有任何问题。
请参阅有关创建向量的文档

In rpy2, the way to get the very same operator as "[" with R is to use ".rx".
See the documentation about extracting with rpy2

For creating vectors, if you know your way around with Python there should not be any issue.
See the documentation about creating vectors

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文