Acessando funções com um ponto no nome (ex.“as.vector”) usando rpy2
Pergunta
Estou tentando acessar a função R "as.vector" de dentro do Python, usando rpy2.Digamos, para simplificar, que eu queira fazer algo tão simples quanto isto usando rpy2 (código R):
x <- as.vector(c(1, 2, 3))
Como "as.vector" contém um ponto em seu nome, ele não está diretamente disponível como membro de rpy2.robjects.r
De acordo com a documentação, rpy2 substitui pontos por sublinhados para parâmetros de função nomeados, mas não parece funcionar para o nome da função em si.Eu tentei, por exemplo."as_vector", "asvector" sem sucesso.
Alguma ideia?
Solução
Obtenha uma referência para a função usando a interface rpy2.robjects.r.
Então, você poderia fazer algo como:
as_vector = robjects.r("as.vector")
vect = as_vector(r_vect)
Outras dicas
De acordo com a documentação, o rpy2 não substitui os pontos por sublinhados ao usar 'rpy2.robjects.r'.
Você pode considerar o uso de 'importr()'