RPy2,具有多个条件的子集数据帧

时间:2013-06-18 15:03:10

标签: python r dataframe subset rpy2

我有一个数据框,其中包括名为data_type和input_type的2列。

要获取数据框的子集,其中data_type列具有特定值,我可以使用:

subset_frame = dataframe.rx(dataframe.rx2('input_type').ro == 'VALUE', True)

我可以在列input_type上执行相同的操作。但是,我还没有设法解决如何在一个操作中组合这两个条件。从rpy2文档中,我期望的应该是

new_frame = dataframe.rx((dataframe.rx2('input_type').ro == 'VALUE1').ro 
                              & dataframe.rx2('data_type').ro == 'VALUE2').ro, 
                              True)

然而,这也行不通。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

一个.ro超出了:

new_frame = all_data_frame.rx((dataframe.rx2('input_type').ro == 'VALUE1').ro 
                               & (dataframe.rx2('data_type').ro == 'VALUE2'), 
                              True)

否则,这可能会更改为and,而不是&。后者是Python中的一个按位运算符。

>>> 1 & 2 # 0b01 & 0b10
0
>>> 1 & 3 # 0b01 & 0b11
1