2016-10-10 97 views
0

相对较新的R和非常新的这里在计算器。获取组合中的百分比

我正试图从显微镜分析.csv输出文件。

输出将告诉我图像上的每个小区是否为“正”(具有1表示)或“阴性”(具有0)

my_data <- data.frame(cell = 1:4, marker_a = c(1, 0, 0, 0), marker_b = c(0,1,1,1), marker_c = c(0,1,1,0))

有时我们测量4个标记,有时更多。

我已经写的东西,给我一个向量的“使用标记”,并放弃“未标记”(在这种情况下,将标记E,F,G这在.csv文件也显示)。

我想自动获取单元格可以采用的所有可能组合。

细胞可用于所有标记为0,或者可以针对marker_bmarker_cmarker_d是正面为marker_a但负。

我的最终目标是量化所有属于每个类别/组合的单元格。

我想要一个向量,将所有具有0值的标记的每个可能的组合命名为它们的所有值都为1的值。

到目前为止,我一直在做的是手动生成组合。

no_marker <- my_data$marker_a == 0 & my_data$marker_b == 0 & my_data$marker_c == 0 a_positive <- my_data$marker_a == 1 & my_data$marker_b == 0 & my_data$marker_c == 0...

然后我就可以创建一个data.frame在以后添加更多的样本。

cell_phenotypes <- c("no_marker", "a_positive", "ab_positive", "abc_positive", "abcd_positive", "b_ positive", "bc_positive"...)

我只是不想手动创建矢量每次。

+0

请您分享一下您对这个样本数据集的预期结果。 – Rentrop

+0

欢迎来到StackOverflow!这将有助于澄清您是否从示例数据中提供了期望的输出。而现在很难处理你描述的相同数据。你可以编辑它为可运行的,例如'my_data < - data.frame(cell = 1:4,marker_a = c(1,0,0,0)...)' –

回答

1

听起来像是你想expand.grid

expand.grid(
    marker_a = c(0, 1), 
    marker_b = c(0, 1), 
    marker_c = c(0, 1), 
    marker_d = c(0, 1) 
) 

#> marker_a marker_b marker_c marker_d 
#> 1   0  0  0  0 
#> 2   1  0  0  0 
#> 3   0  1  0  0 
#> 4   1  1  0  0 
#> 5   0  0  1  0 
#> 6   1  0  1  0 
#> 7   0  1  1  0 
#> 8   1  1  1  0 
#> 9   0  0  0  1 
#> 10  1  0  0  1 
#> 11  0  1  0  1 
#> 12  1  1  0  1 
#> 13  0  0  1  1 
#> 14  1  0  1  1 
#> 15  0  1  1  1 
#> 16  1  1  1  1 

请注意,16是正确的数字;你可以检查自2**4 = 16

+0

我认为这真的会有帮助!我不熟悉这个功能。关于如何将这些数据与原始数据一起使用以获得满足这16个条件的单元总数的任何提示? – jesusgarciab