dplyr을 사용하여 그룹별 행 수 계산
사용 중입니다.mtcars
데이터 집합입니다.특정 데이터 조합에 대한 레코드 수를 찾고 싶습니다.그것과 매우 유사한 것.count(*)
SQL의 절별로 그룹화합니다. ddply()
플라이어가 저를 위해 일하고 있습니다.
library(plyr)
ddply(mtcars, .(cyl,gear),nrow)
출력 있음
cyl gear V1
1 4 3 1
2 4 4 8
3 4 5 2
4 6 3 2
5 6 4 4
6 6 5 1
7 8 3 12
8 8 5 2
이 코드 사용
library(dplyr)
g <- group_by(mtcars, cyl, gear)
summarise(g, length(gear))
출력 있음
length(cyl)
1 32
전달할 다양한 기능을 찾았습니다.summarise()
하지만 아무도 나에게 효과가 없는 것 같습니다.내가 찾은 한 가지 기능은sum(G)
돌아온
Error in eval(expr, envir, enclos) : object 'G' not found
사용해 보았습니다.n()
돌아온
Error in n() : This function should not be called directly
내가 뭘 잘못하고 있는 거지?어떻게 해야 합니까?group_by()
/summarise()
나를 위해 일하는 것?
특별한 기능이 있습니다.n()
행을 카운트하려면 indplyr(대부분 그룹 내):
library(dplyr)
mtcars %>%
group_by(cyl, gear) %>%
summarise(n = n())
#Source: local data frame [8 x 3]
#Groups: cyl [?]
#
# cyl gear n
# (dbl) (dbl) (int)
#1 4 3 1
#2 4 4 8
#3 4 5 2
#4 6 3 2
#5 6 4 4
#6 6 5 1
#7 8 3 12
#8 8 5 2
하지만 Dplyr은 또한 편리함을 제공합니다.count
타이핑을 줄이면서도 정확히 동일한 기능을 수행합니다.
count(mtcars, cyl, gear) # or mtcars %>% count(cyl, gear)
#Source: local data frame [8 x 3]
#Groups: cyl [?]
#
# cyl gear n
# (dbl) (dbl) (int)
#1 4 3 1
#2 4 4 8
#3 4 5 2
#4 6 3 2
#5 6 4 4
#6 6 5 1
#7 8 3 12
#8 8 5 2
당신이 찾고 있는 것은 다음과 같습니다.
cars_by_cylinders_gears <- mtcars %>%
group_by(cyl, gear) %>%
summarise(count = n())
이것은 dplyr 패키지를 사용하고 있습니다.이것은 기본적으로 docendo discimus에서 제공하는 count () 솔루션의 장문 버전입니다.
다른 접근 방식은 이중 콜론을 사용하는 것입니다. 이렇게 하면 다른 패키지의 유사한 이름을 가진 함수와의 잠재적 충돌을 방지할 수 있습니다.
mtcars %>%
dplyr::group_by(cyl, gear) %>%
dplyr::summarise(length(gear))
더 우아할 필요는 없지만 특정 열을 참조할 필요는 없는 또 다른 옵션:
mtcars %>%
group_by(cyl, gear) %>%
do(data.frame(nrow=nrow(.)))
이는 다음을 사용하는 것과 같습니다.count()
:
library(dplyr, warn.conflicts = FALSE)
all.equal(mtcars %>%
group_by(cyl, gear) %>%
do(data.frame(n=nrow(.))) %>%
ungroup(),
count(mtcars, cyl, gear), check.attributes=FALSE)
#> [1] TRUE
다른 옵션은 다음과 같은 기능을 사용하는 것입니다.dplyr
다음은 재현 가능한 예입니다.
library(dplyr)
mtcars %>%
group_by(cyl, gear) %>%
tally()
#> # A tibble: 8 × 3
#> # Groups: cyl [3]
#> cyl gear n
#> <dbl> <dbl> <int>
#> 1 4 3 1
#> 2 4 4 8
#> 3 4 5 2
#> 4 6 3 2
#> 5 6 4 4
#> 6 6 5 1
#> 7 8 3 12
#> 8 8 5 2
repref v2.0.2를 사용하여 2022-09-11에 생성됨
언급URL : https://stackoverflow.com/questions/22767893/count-number-of-rows-by-group-using-dplyr
'programing' 카테고리의 다른 글
vuex 지속 상태가 vue 라우터 탐색 가드와 함께 작동하지 않음 (0) | 2023.06.30 |
---|---|
Spring Boot: @Value는 항상 null을 반환합니다. (0) | 2023.06.30 |
MariaDB "ON UPDATE CASCADE" 제약 조건이 예상대로 작동하지 않습니까? (0) | 2023.06.30 |
sys.stdout을 로그 파일로 복제하는 방법은 무엇입니까? (0) | 2023.06.30 |
파일 존재 확인 방법 (0) | 2023.06.30 |