Quero usar R em Python, conforme fornecido pelo módulo Rpy2. Percebo que R tem []
operações muito convenientes pelas quais você pode extrair as colunas ou linhas específicas. Como posso realizar essa função por meio de scripts Python?
Minha ideia é criar um vetor R e adicionar esses elementos desejados a este vetor de forma que o vetor final seja o mesmo de R. Eu criei a seq()
, mas parece que ele tem um dígito inicial 1, então o resultado final sempre seria comece com o dígito 1, que não é o que desejo. Então, existe uma maneira melhor de fazer isso?
Você pode criar um vetor vazio como este
E então adicione elementos usando c ()
No entanto, como diz Romunov, é muito melhor pré-alocar um vetor e, em seguida, populá-lo (pois isso evita realocar uma nova cópia do seu vetor toda vez que você adiciona elementos)
fonte
Para criar um vetor vazio, use:
Observe que não estou fazendo suposições sobre o tipo de vetor necessário, por exemplo, numérico.
Depois de criar o vetor, você pode adicionar elementos a ele da seguinte maneira:
Por exemplo, para adicionar o valor numérico 1:
ou, para adicionar um valor de string "a"
fonte
vec <- c()
define vec paraNULL
. Se você quiser um vetor vazio, você deve usarvec <- character()
,vec <- numeric()
etc.Eu também vi
Agora você pode concatenar ou vincular um vetor de qualquer dimensão a
x
fonte
x <- NULL
e não cria nada mais do que uma referência a lugar nenhum.Como apontado por Brani, vector () é uma solução, por exemplo
newVector <- vector(mode = "numeric", length = 50)
retornará um vetor denominado "newVector" com 50 "0" como valores iniciais. Também é bastante comum apenas adicionar o novo escalar a um vetor existente para chegar a um vetor expandido, por exemplo
aVector <- c(aVector, newScalar)
fonte
No rpy2, a maneira de obter o mesmo operador que "[" com R é usar ".rx". Veja a documentação sobre como extrair com rpy2
Para criar vetores, se você souber usar o Python, não deve haver nenhum problema. Veja a documentação sobre a criação de vetores
fonte