Pregunta simple, creo, pero no he encontrado una respuesta. Cómo deshacerse del atributo de clase "AsIs" en mi marco de datos. Está impidiendo que el write.dbf
del paquete foreign
se convierta a dbf. Estoy trabajando desde rpy2 pero funciona con el marco de datos R sin "AsIs". Puse el código completo debajo del mensaje de error. dbfs = write_dbf (r_dataframe)Deshacerse del atributo de clase "AsIs"
Error in function (dataframe, file, factor2char = TRUE, max_nchar = 254) :
data frame contains columns of unsupported class(es) AsIs
---------------------------------------------------------------------------
RRuntimeError Traceback (most recent call last)
<ipython-input-26-9072df63231a> in <module>()
----> 1 dbfs = write_dbf(r_dataframe)
/home/matthew/.virtualenvs/mypython/lib/python3.2/site-packages/rpy2-2.2.6dev_20120814-py3.2-linux-i686.egg/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
80 v = kwargs.pop(k)
81 kwargs[r_k] = v
---> 82 return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
/home/matthew/.virtualenvs/mypython/lib/python3.2/site-packages/rpy2-2.2.6dev_20120814-py3.2-linux-i686.egg/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
32 for k, v in kwargs.items():
33 new_kwargs[k] = conversion.py2ri(v)
---> 34 res = super(Function, self).__call__(*new_args, **new_kwargs)
35 res = conversion.ri2py(res)
36 return res
RRuntimeError: Error in function (dataframe, file, factor2char = TRUE, max_nchar = 254) :
data frame contains columns of unsupported class(es) AsIs
estoy usando rpy2 pitón hablar con R. Eso no es donde está el problema, pero aquí está mi código. El write.dbf
funciona desde Rpy2 si utilizo un marco de datos de R sin "AsIs".
(pitón)
df = DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C':[7,8,9]},index=["one", "two", "three"]) I am going from python pandas dataframe to and R datafram using
fore = importr("foreign")
In [19]:
r_dataframe = com.convert_to_r_dataframe(df)
In [20]:
print(type(r_dataframe))
<class 'rpy2.robjects.vectors.DataFrame'>
In [32]:
r_dataframe
Out[32]:
<DataFrame - Python:0xb3db8ac/R:0xc23ac50>
[IntVector, IntVector, IntVector]
A: <class 'rpy2.robjects.vectors.IntVector'>
<IntVector - Python:0xc1fb1ec/R:0xc23ac28>
[ 1, 2, 3]
B: <class 'rpy2.robjects.vectors.IntVector'>
<IntVector - Python:0xc1fb36c/R:0xc23ac00>
[ 4, 5, 6]
C: <class 'rpy2.robjects.vectors.IntVector'>
<IntVector - Python:0xc1fb4ec/R:0xc23abd8>
[ 7, 8, 9]
print(r_dataframe)
A B C
one 1 4 7
two 2 5 8
three 3 6 9
In [25]:
write_dbf =robjects.r("write.dbf")
read_dbf = robjects.r("read.dbf")
In [26]:
dbfs = write_dbf(r_dataframe)
Error in function (dataframe, file, factor2char = TRUE, max_nchar = 254) :
data frame contains columns of unsupported class(es) AsI
dbfs = write_dbf(r_dataframe)
¿Ha intentado simplemente eliminar ese atributo de clase de las columnas afectadas? – joran