함수 - summarise in r




R에서 데이터 프레임의 항목 수 (4)

DPLYR은 이것을 매우 쉽게 만듭니다.

x<-santa%>%
   count(Believe)

그룹에 포함 시키려면, 예를 들어, 몇 명의 남성이 여성이라고 믿는 지, 그냥 group_by 추가하십시오 :

x<-santa%>%
   group_by(Gender)%>%
   count(Believe)

다음 데이터 프레임에 대한 개수를 얻으려고합니다.

> Santa
   Believe Age Gender Presents Behaviour
1    FALSE   9   male       25   naughty
2     TRUE   5   male       20      nice
3     TRUE   4 female       30      nice
4     TRUE   4   male       34   naughty

믿는 아이들의 수. 이 명령을 얻기 위해 어떤 명령을 사용해야합니까?

(실제 데이터 프레임이 훨씬 큽니다. 방금 처음 네 행을주었습니다 ...)

감사!


나는 이것을 두 단계 과정으로 생각한다 :

  1. 제공된 필터에 따라 원본 데이터 프레임을 부분 집합합니다 (Believe == FALSE). 그때

  2. 이 부분 집합의 행 수를 얻는다.

첫 번째 단계에서는 하위 집합 함수가이를 수행하는 좋은 방법입니다 (일반적인 인덱스 또는 대괄호 표기법 대신 사용).

두 번째 단계에서는 dim 또는 nrow를 사용합니다.

부분 집합 사용의 한 가지 장점 : 필요한 결과를 얻기 위해 반환하는 결과를 구문 분석 할 필요가 없습니다. 직접 nrow 를 호출하면됩니다.

그래서 귀하의 경우 :

v = nrow(subset(Santa, Believe==FALSE))     # 'subset' returns a data.frame

또는 익명 함수로 래핑됩니다.

>> fnx = function(fac, lev){nrow(subset(Santa, fac==lev))}

>> fnx(Believe, TRUE)
      3

멍청이를 제외하고, 희미한 것도 일을 할 것입니다. 이 함수는 데이터 프레임 (행, 열)의 크기 를 반환하므로 행 수에 액세스하기위한 적절한 색인을 제공하면됩니다.

v = dim(subset(Santa, Believe==FALSE))[1] 

이 전에 게시 된 운영자에 대한 답변은 우연한 테이블의 사용을 보여줍니다. 나는 OP에서 언급 한 일반적인 문제에 대한 접근 방식을 좋아하지 않는다. 이유가 있습니다. 물론, 이 데이터 프레임에서 C 열에 값 x가있는 행 의 일반적인 문제는 무엇입니까? 우연히도 우연히 만난 테이블을 사용하여 대답 할 수 있습니다. 주어진 요인 변수 (열)에 대한 모든 값에 대해 행 수를 원하면 우발 테이블 (호출 테이블을 통해 관심있는 열을 전달)이 가장 현명한 해결책입니다. 그러나 OP는 요인 변수에서 특정 값의 수를 요구하며 모든 값에서 계수하지 않습니다. 퍼포먼스 히트를 제외하고는 크지 않을 수도 있지만,이 함수가 상주하는 데이터 프레임과 프로세싱 파이프 라인 컨텍스트의 크기에 달려 있습니다. 그리고 물론 테이블에 대한 호출 결과가 반환되면 원하는 결과를 파싱 해야합니다.

이것이 나에게 크로스 탭 문제가 아니라 필터링이라는 이유입니다.


당신은 table 사용할 수 있습니다 :

R> x <- read.table(textConnection('
   Believe Age Gender Presents Behaviour
1    FALSE   9   male       25   naughty
2     TRUE   5   male       20      nice
3     TRUE   4 female       30      nice
4     TRUE   4   male       34   naughty'
), header=TRUE)

R> table(x$Believe)

FALSE  TRUE 
    1     3 

sum(Santa$Believe)






dataframe