데이터 세트가 있습니다
dput(Data)
structure(list(Date = c(20170120L, 20170120L, 20170120L, 20170120L,
20170120L, 20170121L, 20170121L, 20170121L, 20170121L, 20170121L,
20170121L, 20170122L, 20170122L, 20170122L, 20170122L, 20170122L,
20170123L, 20170123L, 20170123L, 20170123L), Card = c(1207330L,
1873230L, 1556250L, 1395950L, 1395950L, 1393220L, 1058940L, 1556250L,
1395950L, 1395950L, 1058940L, 1207330L, 1058940L, 1700880L, 1395950L,
1055360L, 1395950L, 1556250L, 1207330L, 1395950L)), .Names = c("Date",
"Card"), class = "data.frame", row.names = c(NA, -20L))
그리고 나는이 통계를 얻으려고합니다
business_date New Card
20170120 4
20170121 2
20170122 2
20170123 0
첫날-모든 고유 한 새 카드 (1207330,1873230,1556250,1395950)
는 새 카드 가됩니다. 둘째 날-둘째 날의 모든 고유 카드가 첫 번째 날과 비교되며 반복되지 않는 카드는 새 카드 ( 1393220,1058940)
입니다. 셋째 날-첫째 날 (1700880,1055360)
과 둘째 날에없는 새 카드가 필요 합니다.
기본 R에서는 aggregate
날짜 당 중복되지 않은 카드를 사용하여 수행됩니다 .
aggregate(!duplicated(df$Card), by = list(df$Date), FUN = sum)
# Group.1 x
#1 20170120 4
#2 20170121 2
#3 20170122 2
#4 20170123 0
또는 dplyr에서 :
library(dplyr)
df %>%
mutate(count = !duplicated(Card)) %>%
group_by(Date) %>%
summarise(n = sum(count))
## A tibble: 4 × 2
# Date n
# <int> <int>
#1 20170120 4
#2 20170121 2
#3 20170122 2
#4 20170123 0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다