Domanda semplice Penso ma non ho trovato una risposta. Come eliminare l'attributo di classe "AsIs" sul mio frame di dati. Impedisce allo write.dbf
dal pacchetto foreign
di convertirsi in dbf. Sto lavorando da rpy2 ma funziona con frame di dati R senza "AsIs". Ho messo il codice completo sotto il messaggio di errore. dBFS = write_dbf (r_dataframe)Eliminazione dell'attributo di classe "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
Sto usando python rpy2 di parlare con R. Questo non è dove il problema è, ma qui è il mio codice. Il write.dbf
funziona da Rpy2 se utilizzo un frame dati da R senza "AsIs".
(python)
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)
Hai provato semplicemente a rimuovere quell'attributo di classe dalle colonne effettive? – joran