2015-06-10 3 views
0

У меня есть скрипт в python, который загружает .RData и считывает его, а затем записывает в файл excel. К сожалению, одна таблица, содержащая 11 переменных и 144 объекта со смешанными типами (IntVector, FactorVector, Float Vector, Float Vector, ... и т. Д.)rpy2 сохранить метаданные в FactorVector

Когда таблица записывает в Excel, имена столбцов и данные сохраняются, за исключением столбца, который представляет собой четырехуровневый фактор-фактор. Вместо того, чтобы возвращать метаданные (a, a, a, a, b, b, b, b, c, c, c, c, d, d, d, d ... и т. Д.), Связанные с четырьмя уровнями, это возвращает целочисленные значения, связанные с каждым уровнем (1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4 ... и т. д.)

I нашел это на rpy2 sourceforge website, что в значительной степени объясняет мою проблему.

Поскольку FactorVector - это IntVector с прикрепленными метаданными (уровнями), получение элементов Стиль Python не был изменен из того, что происходит при загрузке элементов из IntVector. Следствием этого является то, что информация об уровнях теряется.

Далее объясняется использование уровней, после чего я теряюсь относительно того, что именно я должен делать или использовать, чтобы сохранить уровни метаданных неповрежденными для переменной FactorVector.

Я предполагаю, что есть какой-то rpy2.robjects «switch», который сохранит эти метаданные, когда он будет переведен на python? Каким будет наиболее эффективный способ применения этого? Благодаря!

ответ

1

Клиенты конверсионного уровня, настроенные для pandas DataFrame в rpy2-2.6.0, должны позаботиться о преобразовании R факторов в факторы Pandas.

+0

Спасибо @lgautier. В настоящее время я использую rpy2 2.4.3 и Python 2.7.3. Я не могу обновить эти пакеты в это время из-за программных зависимостей. Я просто скачал панды, хотя я понятия не имею, как использовать его еще - я буду исследовать его немного больше. – myClone

+0

Rpy2, как ожидается, будет работать с Python 3.4 и 2.7. Обновление - это одна установка 'pip install' ... – lgautier

+1

Rpy2, как ожидается, будет работать с Python 3.4 и 2.7. Обновление - это одна из проблем, связанных с установкой 'pip install ... – lgautier

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