Как создать пустой вектор R для добавления новых элементов

Я хочу использовать R в Python, как это предусмотрено модулем Rpy2. Я замечаю, что R имеет очень удобные операции [], посредством которых вы можете извлекать конкретные столбцы или строки. Как я могу достичь такой функции с помощью скриптов Python?

Моя идея - создать вектор R и добавить эти нужные элементы в этот вектор, чтобы конечный вектор был таким же, как в R. Я создал a seq(), но, похоже, он имеет начальную цифру 1, так что конечный результат всегда начинался с цифры 1, чего я не хочу. Итак, есть ли лучший способ сделать это?

Ответ 1

vec <- vector()

См. также справочную справку

?vector

Ответ 2

Я предварительно выделяю вектор с

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

Затем вы можете использовать [] для вставки в него значений.

Ответ 3

Вы можете создать пустой вектор таким образом

vec <- numeric(0)

Затем добавьте элементы, используя c()

vec <- c(vec, 1:5)

Однако, как говорит Ромунов, гораздо лучше предварительно выделить вектор, а затем заполнить его (поскольку это позволяет избежать перераспределения новой копии вашего вектора каждый раз, когда вы добавляете элементы)

Ответ 4

Я также видел

x <- {}

Теперь вы можете объединить или привязать вектор любого измерения к x

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

Ответ 5

Чтобы создать пустое векторное использование:

vec <- c();

Обратите внимание: я не делаю никаких предположений о типе требуемого вам вектора, например. Числовой.

После создания вектора вы можете добавить к нему следующие элементы:

Например, чтобы добавить числовое значение 1:

vec <- c(vec, 1);

или, чтобы добавить строковое значение "a"

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

Ответ 6

Как указано Брани, вектор() является решением, например

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

вернет вектор с именем "newVector" с 50 "0" в качестве начальных значений. Также довольно просто добавить новый скаляр в существующий вектор, чтобы получить расширенный вектор, например.

aVector <- c(aVector, newScalar)

Ответ 7

В rpy2, чтобы получить тот же самый оператор, что и "[" с R, следует использовать ".rx". См. Документацию по извлечение с помощью rpy2

Для создания векторов, если вы знаете свой путь с Python, не должно быть никаких проблем. Смотрите документацию о создании векторов