#' Extracts row names and filters based on 2 columns
#'
#' @param data data frame
#' @param transpose transpose data
#' @param column1 column 1 to be used
#' @param lower1 lower or upper limit 1
#' @param threshold1 threshold for filtering 1
#' @param column2 column 2 to be used
#' @param lower2 lower or upper limit 2
#' @param threshold2 threshold for filtering 2
#'
#' @return
#' @export
#'
#'
extractRownames2 <- function(data, transpose = F, column1, lower1, threshold1, column2, lower2, threshold2) {
if(!hasArg(data)) {
data <- getData()
}
data <- transposeData(data, transpose = transpose)
rownames <- rep(T, nrow(data))
message("")
message(paste(sum(rownames), "row names in total."))
if(!hasArg(column1)) {
column1 <- whatToDo("Which column should be used for first filtering?", colnames(data))
}
if(!hasArg(lower1)) {
lower1 <- ok("Is this a lower limit?")
}
if(!hasArg(threshold1)) {
threshold1 <- getNumber("Threshold: ")
}
if(lower1) {
rownames <- combineAND(rownames, data[, column1] > threshold1)
}
else {
rownames <- combineAND(rownames, data[, column1] < threshold1)
}
message(paste(sum(rownames), "row names after first filtering."))
#Second round
if(!hasArg(column2)) {
column2 <- whatToDo("Which column should be used for second filtering?", colnames(data))
}
if(!hasArg(lower2)) {
lower2 <- ok("Is this a lower limit?")
}
if(!hasArg(threshold2)) {
threshold2 <- getNumber("Threshold: ")
}
if(lower2) {
rownames <- combineAND(rownames, data[, column2] > threshold2)
}
else {
rownames <- combineAND(rownames, data[, column2] < threshold2)
}
message(paste(sum(rownames), "row names after second filtering."))
rownames(data)[rownames]
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.