2013-09-26 15 views
7

Bazı R datasets kolayca loaded into a Pandas DataFrame or Panel olabilir:Yüksek yük boyutlu R kümesi

import pandas.rpy.common as com 
infert = com.load_data('infert') 
print(infert.head()) 

Bu sürece R 'veri kümesi boyutu < = 3. Daha yüksek boyutlu veri kümeleri bir baskı olarak çalışması için görünür hata mesajı:

In [67]: com.load_data('Titanic') 
Cannot handle dim=4 

Bu hata mesajı rpy/common.py_convert_array fonksiyonu olarak görülmektedir.

Elbette, Panda'ların bir DataFrame veya Panel içine 4 boyutlu bir matrisi doğrudan koruyamadığı anlaşılıyor, ancak Titanic gibi veri kümelerini bir DataFrame'e (belki de bir hiyerarşik dizine sahip) yüklemek için bazı geçici çözüm var mı? Ben bir Pandalar DataFrame içine Titanic veri kümesini yüklemek başardı

% sudo R 
R> install.packages('reshape') 

ile reshape paketini yükledikten sonra, Joran en çok yararlı öneri @ kullanma

+1

'R ilk önce melt' ve yük verir ...:, pandas.rpy.common.load_data örneğin Titanic olarak yüksek boyutlu veri kümelerini yüklemek? – joran

+0

@joran: Teşekkürler, bu işe yarıyor! – unutbu

cevap

1

Pandas version 0.13.0 or newer ile

import pandas.rpy.common as com 
df = com.load_data('Titanic') 
print(df.head()) 

Survived Age  Sex Class value 
0  No Child Male 1st 0.0 
1  No Child Male 2nd 0.0 
2  No Child Male 3rd 35.0 
3  No Child Male Crew 0.0 
4  No Child Female 1st 0.0 
7

:

Class  Sex Age Survived value 
1 1st Male Child  No  0 
2 2nd Male Child  No  0 
3 3rd Male Child  No  35 
4 Crew Male Child  No  0 
5 1st Female Child  No  0 
baskılı
import pandas as pd 
import pandas.rpy.common as com 
import rpy2.robjects as ro 

r = ro.r 
r('library(reshape)') 
df = com.convert_robj(r('melt(Titanic)')) 
print(df.head()) 

+2

Çalıştığına sevindim. FYI, ** reshape ** eski versiyonudur. Bunun yerine ** reshape2 ** kullanmaya değer olabilir. – joran

İlgili konular