Tôi muốn đếm cho mỗi country
số lần status
là open
và số lần status
là closed
. Sau đó, tính toán closerate
cho mỗi country
.Nhóm và đếm để có được một đóng cửa
dữ liệu:
customer <- c(1,2,3,4,5,6,7,8,9)
country <- c('BE', 'NL', 'NL','NL','BE','NL','BE','BE','NL')
closeday <- c('2017-08-23', '2017-08-05', '2017-08-22', '2017-08-26',
'2017-08-25', '2017-08-13', '2017-08-30', '2017-08-05', '2017-08-23')
closeday <- as.Date(closeday)
df <- data.frame(customer,country,closeday)
Thêm status
:
df$status <- ifelse(df$closeday < '2017-08-20', 'open', 'closed')
customer country closeday status
1 1 BE 2017-08-23 closed
2 2 NL 2017-08-05 open
3 3 NL 2017-08-22 closed
4 4 NL 2017-08-26 closed
5 5 BE 2017-08-25 closed
6 6 NL 2017-08-13 open
7 7 BE 2017-08-30 closed
8 8 BE 2017-08-05 open
9 9 NL 2017-08-23 closed
tính closerate
closerate <- length(which(df$status == 'closed'))/
(length(which(df$status == 'closed')) + length(which(df$status == 'open')))
[1] 0.6666667
Rõ ràng, đây là closerate
cho tổng số. Thách thức là để có được closerate
mỗi country
. Tôi đã cố gắng thêm các tính closerate
để df
bởi:
df$closerate <- length(which(df$status == 'closed'))/
(length(which(df$status == 'closed')) + length(which(df$status == 'open')))
Nhưng nó mang lại cho tất cả các dòng một closerate
0,66 vì tôi không tập trung. Tôi tin rằng tôi không nên sử dụng chức năng chiều dài vì đếm có thể được thực hiện bằng cách nhóm. Tôi đọc một số thông tin về việc sử dụng dplyr
để đếm kết quả đầu ra hợp lý cho mỗi nhóm nhưng điều này không hiệu quả.
Đây là đầu ra mong muốn:
Cảm ơn bạn đã trả lời nhanh chóng của bạn, rất hữu ích! – Rhulsb