web-dev-qa-db-ja.com

空のRベクトルを作成して新しいアイテムを追加する方法

Rpy2モジュールで提供されているように、PythonでRを使用します。 Rには、特定の列または行を抽出できる非常に便利な[]操作があります。 Pythonスクリプトによってこのような機能を実現するにはどうすればよいですか?

私の考えは、Rベクトルを作成し、それらの必要な要素をこのベクトルに追加して、最終ベクトルがRと同じになるようにすることです。seq()を作成しましたが、最初の桁は1最終結果は常に数字の1から始まりますが、これは私が望むものではありません。だから、これを行うより良い方法はありますか?

84
ligwin
vec <- vector()

ベクターヘルプもご覧ください

?vector
91
Brani

ベクトルを事前に割り当てます

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

その後、[]を使用して値を挿入できます。

50
Roman Luštrik

次のように空のベクターを作成できます

vec <- numeric(0)

そして、c()を使用して要素を追加します

vec <- c(vec, 1:5)

ただし、romunovが言うように、ベクトルを事前に割り当ててからデータを追加する方がはるかに優れています(これにより、要素を追加するたびにベクトルの新しいコピーを再割り当てする必要がなくなるため)

22
Aaron Statham

空のベクターを作成するには:

vec <- c();

注意してください、私はあなたが必要とするベクトルのタイプについて、例えば、数値。

ベクトルが作成されたら、次のように要素を追加できます。

たとえば、数値1を追加するには:

vec <- c(vec, 1);

または、文字列値「a」を追加するには

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

私も見ました

x <- {}

これで、任意の次元のベクトルをxに連結またはバインドできます

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

Braniが指摘したように、vector()はソリューションです。

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

50個の「0」を初期値として持つ「newVector」という名前のベクトルを返します。また、既存のベクターに新しいスカラーを追加して、展開されたベクターに到達することもかなり一般的です。

aVector <- c(aVector, newScalar)

2
Sam

Rpy2では、Rで「[」とまったく同じ演算子を取得する方法は、「。rx」を使用することです。 rpy2で抽出 に関するドキュメントを参照してください

ベクトルを作成する場合、Pythonの使用方法を知っていれば、問題はないはずです。 ベクトルの作成 に関するドキュメントを参照してください

1
lgautier