2014-11-12 3 views
0

이것은 매우 간단 할 수 있지만 여기에 도달하지 못해서 여기에 게시하여 도움을 얻을 수 있습니다.데이터 집합의 하위 집합에 대한 그룹별로 비율을 계산하십시오.

범주 형 변수의 데이터 세트에 대한 그룹 별 비율 및 표준 오차를 계산하고 싶습니다. 그래서 나는 2 개의 변수를 가지고 있습니다. v1은 1에서 4까지이고 v2은 1에서 9까지입니다. 저는 v1 그룹에 따라 1의 비율을 계산합니다 (2,3 ... 9 (v2)). 손으로 이렇게하려면

때문에 사용 table(v1, v2) 쉽게,하지만 좀 더 간단한 방법으로 손 :

에 의해 상기하고 싶지 해달라고 : 그것은 숫자 변수이기 때문에 내가 %를 찾으려하지만 우리는 평균 사용할 수 있습니다 . 우리는 1000 명을 가지고 있으며, 300은 범주 1의 v1에 속하며 범주 2는 v1 등입니다. v2, 범주 1에 400과 동일합니다. v2 그룹으로 카테고리 1 (v1)의 %를 계산하면 300/400, 200/400 등이됩니다.

id v1 v2 
1 1 1 
2 1 1 
3 2 1 
4 2 1 
5 3 2 
6 3 2 
7 4 2 
dataframe 샘플

원하는 출력 :

그룹 v2: group 1 (v2=1) 2/4; 2/4; 2/4; 1/4. v2: group 2 (v2=2) 2/3; 2/3; 2/3; 1/3

에 의해 propotion이 말이 바랍니다!

+0

%를 찾고 싶지만 수치 변수이므로 의미를 사용할 수 있습니다. 우리는 1000 명, 300 명은 v1의 카테고리 1에, 200 명은 v2의 카테고리 2에 포함되어 있습니다. v2에 대해서도 동일하고, 카테고리 1에 400 명이 있습니다. v2 그룹별로 카테고리 1 (v1)의 %를 계산하면 300/400, 200/400 등이됩니다. – klo

+0

@KFB가 데이터 프레임 샘플을 추가했습니다. – klo

+0

v1에 1과 2 (각각 2 개)가있는 경우 v2 == 1에 대해 4 개의 값 (2/4, 2/4, 2/4, 1/4)이있는 이유는 무엇입니까? ? – rnso

답변

0

시도 :

library(data.table) 
setDT(dt)[v1==1,list(meanv2=mean(v2), sev2=se(v2)),by=v3] 

경우 V1 == 1, 평균 (V1)이 1

+0

감사합니다. 이것은 올바른 코드 일지 모르지만 제 경우에는 효과가 없습니다. 아마 나는 잘 설명하지 않았고, 그래서 모든 게시물을 업데이트하고있다. 감사 – klo

0

이 동일 할 것이다 위의 제 질문의 답이지만, 동시에 메신저에 또 다른 질문을 . 그러나 나는 내가 표준 오류

tapply(dt$v1, dt$v2, function(x){prop.table(table(x))}) 

표준 오차는이 공식 SE = sqrt(p*(1-p)/n)p=proportionn=total population 함께를 계산하기 위해 추가로 필요한이 작업을 수행하는 코드를 발견했다.

내 질문은 : 위의 코드에 SE를 포함시키는 방법은 무엇입니까?

미리 감사드립니다.

관련 문제