Rpy2: TypeError: параметр 'category' должен быть похож на список - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу преобразовать DataFrame в pandas. Рассмотрим следующий код в качестве иллюстрации

import rpy2, rpy2.robjects as robjects, rpy2.robjects.packages as rpackages
from rpy2.robjects.vectors import StrVector
import os
from rpy2.robjects.packages import importr
base = importr('base')
print(base.R_home())

# install packages in r from python

packageNames  = ('ggplot2', 'hexbin', 'MVN','afex', 'emmeans')
utils = rpackages.importr('utils')
utils.chooseCRANmirror(ind=1)

packnames_to_install = [x for x in packageNames if not rpackages.isinstalled(x)]

if len(packnames_to_install) > 0:
    utils.install_packages(StrVector(packnames_to_install))


# Read table function in r to python dataframe
data = robjects.r('read.table(file =' \
       '"http://personality-project.org/r/datasets/R.appendix3.data", header = T)')

data.head()

enter image description here

Я хочу преобразовать этот кадр данныхв python dataframe

следующим образом

# Convert R Dataframe to python Dataframe
# !pip install tzlocal
# type(data)
from rpy2.robjects import pandas2ri
pd_df = pandas2ri.ri2py_dataframe(data)
pd_df

Я получаю следующую ошибку

TypeError: Parameter 'categories' must be list-like, was <rpy2.rinterface.StrSexpVector - Python:0x0000021E88AB4FC0 / R:0x0000021EF1A6AE98>

Как заставить ее работать правильно?

1 Ответ

0 голосов
/ 11 ноября 2019

import rpy2, rpy2.robjects as robjects, rpy2.robjects.packages as rpackages
from rpy2.robjects.vectors import StrVector
#Converting data frames back and forth between rpy2 and pandas
from rpy2.robjects import r, pandas2ri
pandas2ri.activate()
import os
from rpy2.robjects.packages import importr
base = importr('base')
data = robjects.r('read.table(file =' \
       '"http://personality-project.org/r/datasets/R.appendix3.data", header = T)')
data.head()

из rpy2.robjects import r, pandas2ri
pandas2ri.activate ()
Преобразование кадров данных между rpy2 и pandas и обратно

enter image description here

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