Chcę używać języka R w Pythonie, jak zapewnia moduł Rpy2. Zauważyłem, że R ma bardzo wygodne []
operacje, za pomocą których można wyodrębnić określone kolumny lub wiersze. Jak mogłem osiągnąć taką funkcję przez skrypty Pythona?
Moim pomysłem jest stworzenie wektora R i dodanie tych poszukiwanych elementów do tego wektora, tak aby końcowy wektor był taki sam jak w R. Stworzyłem a seq()
, ale wydaje się, że ma początkową cyfrę 1, więc końcowy wynik zawsze zacznij od cyfry 1, co nie jest tym, czego chcę. Czy jest więc lepszy sposób na zrobienie tego?
Możesz stworzyć taki pusty wektor
vec <- numeric(0)
A następnie dodaj elementy za pomocą c ()
vec <- c(vec, 1:5)
Jednak, jak mówi Romunov, znacznie lepiej jest wstępnie przydzielić wektor, a następnie go wypełnić (ponieważ pozwala to uniknąć ponownego przydzielania nowej kopii wektora za każdym razem, gdy dodajesz elementy)
źródło
Aby stworzyć pusty wektor użyj:
vec <- c();
Proszę zauważyć, że nie zakładam żadnych założeń co do typu wymaganego wektora, np. Numeryczny.
Po utworzeniu wektora możesz dodać do niego elementy w następujący sposób:
Na przykład, aby dodać wartość liczbową 1:
vec <- c(vec, 1);
lub, aby dodać wartość ciągu „a”
vec <- c(vec, "a");
źródło
vec <- c()
ustawia vec naNULL
. Jeśli chcesz pusty wektor należałoby użyćvec <- character()
,vec <- numeric()
itd.Ja też widziałem
x <- {}
Teraz możesz połączyć lub powiązać wektor o dowolnym wymiarze
x
rbind(x, 1:10) cbind(x, 1:10) c(x, 10)
źródło
x <- NULL
i nie tworzy niczego innego niż odniesienie do niczego.Jak zauważył Brani, rozwiązaniem vector () jest np
newVector <- vector(mode = "numeric", length = 50)
zwróci wektor o nazwie „newVector” z 50 „0” jako wartościami początkowymi. Dość często po prostu dodaje się nowy skalar do istniejącego wektora, aby uzyskać rozszerzony wektor, np
aVector <- c(aVector, newScalar)
źródło
W rpy2 sposobem na uzyskanie tego samego operatora co "[" w R jest użycie ".rx". Zobacz dokumentację dotyczącą wypakowywania za pomocą rpy2
W przypadku tworzenia wektorów, jeśli znasz się na Pythonie, nie powinno być żadnych problemów. Zobacz dokumentację dotyczącą tworzenia wektorów
źródło