Diff of /R/XenaScan.R [000000] .. [0bdad5]

Switch to unified view

a b/R/XenaScan.R
1
#' Scan all rows according to user input by a regular expression
2
#'
3
#' `XenaScan()` is a function can be used before [XenaGenerate()].
4
#'
5
#' @inheritParams XenaGenerate
6
#' @inheritParams base::grep
7
#' @importFrom rlang .data
8
#'
9
#' @return a `data.frame`
10
#' @export
11
#'
12
#' @examples
13
#'
14
#' x1 <- XenaScan(pattern = "Blood")
15
#' x2 <- XenaScan(pattern = "LUNG", ignore.case = FALSE)
16
#'
17
#' x1 %>%
18
#'   XenaGenerate()
19
#' x2 %>%
20
#'   XenaGenerate()
21
XenaScan <- function(XenaData = UCSCXenaTools::XenaData, pattern = NULL, ignore.case = TRUE) {
22
  if (!is.null(pattern)) {
23
    index <- XenaData %>%
24
      dplyr::rowwise() %>%
25
      dplyr::do(data.frame(i = any(grepl(pattern,
26
        .data,
27
        ignore.case = ignore.case
28
      )))) %>%
29
      dplyr::pull(.data$i)
30
    if (any(index)) {
31
      data <- XenaData %>% dplyr::filter(index)
32
      return(data)
33
    } else {
34
      return(XenaData[FALSE, ])
35
    }
36
  } else {
37
    return(XenaData)
38
  }
39
}