Een lege R-vector maken om nieuwe items toe te voegen

Ik wil R gebruiken in Python, zoals geleverd door de module Rpy2. Ik merk dat R erg handige []bewerkingen heeft waarmee je de specifieke kolommen of regels kunt extraheren. Hoe kan ik zo’n functie bereiken met Python-scripts?

Mijn idee is om een R-vector te maken en de gewenste elementen aan deze vector toe te voegen, zodat de uiteindelijke vector hetzelfde is als die in R. Ik heb een seq()gemaakt, maar het lijkt erop dat het heeft een eerste cijfer 1, dus het eindresultaat zou altijd beginnen met het cijfer 1, wat niet is wat ik wil. Dus, is er een betere manier om dit te doen?


Antwoord 1, autoriteit 100%

vec <- vector()

Zie ook vectorhulp

?vector

Antwoord 2, autoriteit 59%

Ik wijs vooraf een vector toe met

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

U kunt dan [] gebruiken om er waarden in in te voegen.


Antwoord 3, autoriteit 26%

Je kunt zo een lege vector maken

vec <- numeric(0)

En voeg dan elementen toe met c()

vec <- c(vec, 1:5)

Maar zoals romunov zegt, het is veel beter om een vector vooraf toe te wijzen en deze vervolgens te vullen (omdat dit voorkomt dat elke keer dat u elementen toevoegt een nieuwe kopie van uw vector opnieuw wordt toegewezen)


Antwoord 4, autoriteit 9%

Gebruik om een lege vector te maken:

vec <- c();

Let op, ik doe geen aannames over het type vector dat je nodig hebt, b.v. numeriek.

Zodra de vector is gemaakt, kunt u er als volgt elementen aan toevoegen:

Als u bijvoorbeeld de numerieke waarde 1 wilt optellen:

vec <- c(vec, 1);

of, om een tekenreekswaarde “a” toe te voegen

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

Antwoord 5, autoriteit 5%

Ik heb ook gezien

x <- {}

Je kunt nu een vector van elke dimensie samenvoegen of binden aan x

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

Antwoord 6, autoriteit 3%

Zoals Brani aangeeft, is vector() een oplossing, bijvoorbeeld

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

retourneert een vector met de naam “newVector” met 50 “0”-en als beginwaarden. Het is ook vrij gebruikelijk om gewoon de nieuwe scalair toe te voegen aan een bestaande vector om tot een uitgebreide vector te komen, bijvoorbeeld

aVector <- c(aVector, newScalar)


Antwoord 7, autoriteit 2%

In rpy2 kun je dezelfde operator als “[” met R krijgen door “.rx” te gebruiken.
Zie de documentatie over uitpakken met rpy2

Voor het maken van vectoren, als je de weg kent met Python, zou er geen probleem moeten zijn.
Zie de documentatie over het maken van vectoren

Other episodes