我正在试图弄清楚如何使用python从XML文件中将文件解析为数据结构以传递到R中。
我需要在R中创建的是数据帧列表:
Nodes = data.frame()
Edges = data.frame()
NetworkCompListA = list()
NetworkCompListA[['Nodes']] = Nodes
NetworkCompListA[['Edges']] = Edges
Networks = list()
Networks[['NetA']] = NetworkCompListA
Networks[['NetB']] = NetworkCompListB
我知道如何根据Rpy2文档中的示例创建数据框。
import rpy2.rlike.container as rlc
od = rlc.OrdDict([('value', robjects.IntVector((1,2,3))),
('letter', robjects.StrVector(('x', 'y', 'z')))])
df = robjects.DataFrame(od)
如何将'df'插入List,然后将该列表插入python中的另一个列表,然后将其写入rdata文件以加载到另一个R实例?
谢谢!
答案 0 :(得分:2)
类ListVector
需要一个实现iteritems()
的对象(例如dict
或OrderedDict
)。请注意,在R data.frames中只是具有(松散)约束的列表,所有元素应该是相同长度的向量(或者可以接受具有匹配行数的矩阵),并且具有行名称和列名称(列表的名称是列名。)
from rpy2.robjects.vectors import ListVector, DataFrame
# rpy2's OrdDict was added because there was no ordered dict
# in Python's stdlib. It should be gone by rpy2-2.5
from collections import OrderedDict
od = OrderedDict((('a', 1), ('b', 2)))
df = DataFrame(od)
od_l = OrderedDict((('df', df),))
df_in_list = ListVector(od_l)
df_in_list_in_list = ListVector(OrderedDict((('df_in_list', df_in_list),))