如果我不是以正确的方式发布这个问题,我在R中相对较新,请原谅。
我有一个由组合函数生成的矩阵。
double_expression_combinations <- combn(marker_column_vector,2)
此矩阵有x列和2行。每列有2行数字,用于表示名为initial
的主数据框中的列号。这些列号是要测试的列的组合。 initial
数据框为27列(数千行),值为1和0.测试包括使用double_expression_combinations
给出的2个数字作为列号来使用initial
。测试包括添加这两列中的每一行并计算总和等于2的次数。
我相信我能够提出计数部分,我只是不知道如何使用double_expression_combinations
数据框中的数据从“初始”数据框中选择要测试的列。
编辑以修复评论者所做的更正
答案 0 :(得分:0)
使用R确保术语准确是很重要的。 double_expression_combinations
不是数据框,而是matrix
。使用apply
循环遍历矩阵中的列很容易。我对确切的测试有点不清楚,但这可能会成功:
apply( double_expression_combinations, 2, # the 2 selects each column in turn
function(cols){ sum( initial[ , cols[1] ] + initial[ , cols[2] ] == 2) } )
'+'和'=='运算符都是矢量化的,因此在sum
的调用中不需要额外的循环。