2012-11-27 3 views
3

각 클래스의 20 개의 교실 [1 ~ 20] 색인과 20 개의 다른 학생 수가있는 데이터 프레임이 있습니다. 크기 n = 8의 모든 하위 샘플을 얻는 방법과 나중에 계산에 사용하기 때문에 저장합니다. combn()을 사용했는데 하나의 벡터 만 필요합니다. 데이터 프레임과 함께 사용할 수 있습니까? (미안하지만 R에서 새롭) 아래 dataframe :R에서 크기 N의 데이터 프레임에서 크기 n의 모든 가능한 하위 샘플을 얻는 방법?

classrooms students 
1   1  29 
2   2  30 
3   3  35 
4   4  28 
5   5  32 
6   6  20 
7   7  25 
8   8  22 
9   9  32 
10   10  26 
11   11  27 
12   12  34 
13   13  27 
14   14  28 
15   15  33 
16   16  21 
17   17  36 
18   18  24 
19   19  19 
20   20  32 
+0

는 데이터 프레임을 생산하는 기계가 읽을 수있는 코드를 추가하십시오 데이터 집합 교실에서 8 개 교실의 모든 가능한 조합을 원하는 가정. dput()은이 작업에 적합합니다. –

+5

'readboard ('clipboard', header = TRUE)'가 작동 할 것입니다 ('dput'이 더 좋겠지 만) – mnel

+0

@mnel, 나는 당신이 그것을 할 수 있는지 몰랐습니다! 아주 멋지다. –

답변

4

그것은 combn에 함수를 전달하는만큼 간단하다. simplify = FALSE은 목록이 반환됨을 의미합니다.

당신이

combinations <- combn(nrow(classrooms), 8, function(x,data) data[x,], 
        simplify = FALSE, data =classrooms) 

head(combinations, n = 2) 

[[1]] 
    classrooms students 
1   1  29 
2   2  30 
3   3  35 
4   4  28 
5   5  32 
6   6  20 
7   7  25 
8   8  22 

[[2]] 
    classrooms students 
1   1  29 
2   2  30 
3   3  35 
4   4  28 
5   5  32 
6   6  20 
7   7  25 
9   9  32 
+0

빠른 응답을 주셔서 감사합니다. 그러나 오류가 발생하면> 콤보 (nrow (교실), 2, 함수 (x, 데이터) 데이터 [x,], 단순화 = 거짓, 데이터 = 교실) 오류 – Gofoboso

+0

내 솔루션은 데이터 집합이'classrooms'라는 data.frame이라고 가정합니다.이 경우에는 다음과 같이 입력하십시오. 그럴 경우, 내 해결책이 효과가있다. (나에게 도움이된다.) – mnel

+0

thnx man, 나는 R에 매우 익숙하다. 고마워. – Gofoboso

관련 문제