2

我试图弄清楚如何使用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”插入到列表中,然后将该列表插入到 python 中的另一个列表中,然后将其写入 rdata 文件以加载到 R 的另一个实例中?

谢谢!

4

1 回答 1

3

该类ListVector需要一个实现的对象iteritems()(例如 adict或 a 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),))
于 2013-01-31T03:19:19.567 回答