2016-10-10 122 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