преобразовать список в Python в вектор в R

Я уже ссылался на пост здесь. преобразование списка Python в числовой вектор R

Я получил ту же ошибку, но предоставленное решение не работает для меня, поэтому я публикую его. Я использую python 2.7 и rpy2, соответствующую новейшей версии в Linux.

Я попытался вызвать функцию R из python с помощью rpy2, мои первые несколько строк выглядят следующим образом.

import rpy2.robjects as robjects
from rpy2.robjects.packages import importr

import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()

r=robjects.r
astsa=importr('astsa')
astsa.acf2(L, 3)       # L:a numeric list returned by my omitted code,I checked 

ошибка следующая:

Traceback (most recent call last):
  File "/home/jin/Desktop/main.py", line 63, in <module>
    astsa.acf2(traffic[0], 3)
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 86, in __call__
    return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 35, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
RRuntimeError: Error in stats::acf(series, max.lag, plot = FALSE) : 'x' must be numeric

person Jin    schedule 12.06.2013    source источник
comment
Ошибка исходит от R: он ожидает числовой вектор, а L, вероятно, является списком (смотря на сообщение об ошибке от R)   -  person lgautier    schedule 12.06.2013
comment
Это правда, но когда я пытаюсь преобразовать список python в вектор R, используя предыдущую ссылку ссылки, он не прошел, поэтому я публикую   -  person Jin    schedule 12.06.2013
comment
Было бы легче объяснить, что происходит, если бы вы могли привести самодостаточный пример (здесь есть я делаю что-то здесь, но все, что я делаю, это правильный пробел в середине, который предполагает, что он содержит источник и объяснение проблемы)   -  person lgautier    schedule 12.06.2013
comment
вы можете добавить одну строку назначения перед последней строкой, скажем, L=[1,2,3,4,5,6], сообщения об ошибках останутся. убедитесь, что у вас установлен пакет astsa R. Спасибо   -  person Jin    schedule 12.06.2013
comment
Хорошо, я понял, вам нужна еще одна строка для вызова функции R L = robjects.FloatVector(L)   -  person Jin    schedule 13.06.2013


Ответы (1)


Вы можете легко экспортировать фрейм данных, созданный с помощью panda на Python:

import numpy as np              
import pandas as pd  

Создайте фрейм данных и экспортируйте его:

mydataFrame.to_csv("path/to/mydataFrame.csv")

и импортируйте фрейм данных с read.csv в R. data$column даст вам ваш список.

person Thomas Ggt    schedule 22.04.2016