R相对较新,在stackoverflow中非常新。
我正在尝试从显微镜分析.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文件中)。 / p>
我想自动获取单元格可以采用的所有可能组合。
所有标记的单元格可以为0,marker_a
可以为正数,marker_b
,marker_c
,marker_d
为负数。
我的最终目标是量化属于每个类别/组合的所有细胞。
我想要一个向所有带有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 :(得分: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
。