2016-10-10 2 views
0

R에 새롭고 여기에서 아주 새로운 stackoverflow에서.조합을 얻는 방법 r의 백분율

현미경에서 .csv 출력 파일을 분석하려고합니다. 출력은 때로는 때로는 4 개 마커를 측정 화상의 각 셀

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))

(a, 0) (1로 표시) "양성"또는 "네거티브"인지 말해 것이다

더.

이미 "사용 된 마커"가있는 벡터를 제공하고 "사용하지 않은 마커"(이 경우에는 .csv 파일에도 표시되는 마커 e, f, g가 될 것입니다)를 버리는 무언가를 작성했습니다.

셀이 취할 수있는 가능한 모든 조합을 자동으로 가져오고 싶습니다.

셀은 모든 마커에 대해 0 일 수도 있고 marker_b, marker_c, marker_dmarker_a 대해 양성이지만 음수 일 수있다.

나의 최종 목표는 각 카테고리/조합에 해당하는 모든 셀을 계량화하는 것입니다.

가능한 모든 조합의 값이 0 인 모든 마커를 모두 1 개의 값으로 지정하는 벡터가 필요합니다.

지금까지 내가 수행 한 작업은 수동으로 조합을 생성하는 것입니다. a_positive <- my_data$marker_a == 1 & my_data$marker_b == 0 & my_data$marker_c == 0...

no_marker <- my_data$marker_a == 0 & 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

답변

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

관련 문제