2015-09-09 2 views
0

Документация для rpy2 меня сбивает с толку. В R можно было бы использовать интерфейс help(), чтобы узнать, как работают некоторые вещи в R. Например, help(print) показывает, как использовать print(); он дает описание, использование и примеры, например.Понимание перевода между R и rpy2

‘print’ prints its argument and returns it _invisibly_ (via 
‘invisible(x)’). It is a generic function which means that new 
printing methods can be easily added for new ‘class’es. 

Есть простой способ узнать, как выполнить каждый метод из R в rpy2 с помощью rpy2? Чтобы получить справку по использованию rpy2, можно было бы использовать

>>> from rpy2.robjects.packages import importr 
>>> utils = importr("utils") 
>>> help_doc = utils.help("print") 

, а затем преобразовать объект в строку, чтобы увидеть в документации, то есть str(help_doc). Однако это только печатает документацию от R, она не показывает мне, как реализовать print в rpy2.

Есть ли лучший способ быстро перевести между R и rpy2?

Пример: загрузка файлов данных, file.Rdata

В R, можно было бы использовать функцию load(), т.е.

source("file.Rdata") 

и файл данных загружен.

В rpy2, можно было бы использовать функцию load() и преобразовать в Python объектов в зависимости от обстоятельств, т.е.

>>> import rpy2.robjects as robjects 
>>> robjects.r['load']("file.RData") 

Тогда для того, чтобы управлять этими объектами в numpy, можно было бы просто использовать

from rpy2.robjects import numpy2ri 

и конвертировать R векторов/массивов в numpy массивов с использованием numpy.asarray() или numpy.array().

http://rpy.sourceforge.net/rpy2/doc-2.6/html/numpy.html

+0

Ссылка предназначена для документа старой версии rpy2. Рассмотрите изменение 2.2 до 2.6 в URL. – lgautier

+0

@lgautier Вы правы. Благодаря! – ShanZhengYang

ответ

0

rpy2 предоставляет различные способы доступа к структурам данных R или функции.

С importr() у вас есть ряд удобных функций. Одна из них - динамическая генерация докстринтов Python с R man-страниц.

Например, попробуйте в IPython:

In [1]: from rpy2.robjects.packages import importr 

In [2]: base = importr("base") 

In [3]: ?base.print 

Для rpy2 специфические структуры данных и функции, есть документация (ссылка на вопрос). Не совершенен, но улучшается со временем благодаря вкладам и обратной связи.

Смежные вопросы