forked from GuangchuangYu/nCov2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubset.R
44 lines (38 loc) · 1 KB
/
subset.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
##' @method [ nCov2019History
##' @export
`[.nCov2019History` <- function(object, i, j, ...) {
obj <- object$data
if (missing(i)) {
return(obj[, j, drop=FALSE])
}
if (i=='global'){
return(object$global)
}
if (is.numeric(i)) {
i <- unique(obj$province)[i]
}
## load(system.file("ncovEnv.rda", package="nCov2019"))
## ncovEnv <- get("ncovEnv")
## special_city <- get("special_city", envir = ncovEnv)
ii <- obj$province %in% i
obj[ii, j, drop=FALSE]
}
##' @method [ nCov2019
##' @export
`[.nCov2019` <- function(object, i, j, by="total", ...) {
by <- match.arg(by, c("total", "today"))
d <- object$areaTree[1, "children"][[1]]
name = d[[1]]
if (missing(i)) {
res <- cbind(name=name, d[[by]])
} else if (length(i) == 1) {
res <- extract_province(object, i, by)
} else {
res <- do.call("rbind",
lapply(i, function(ii) {
extract_province(object, ii, by)
})
)
}
res[1:nrow(res), j, drop=FALSE]
}