diff --git a/NAMESPACE b/NAMESPACE index f304d20..afc1b39 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -11,6 +11,7 @@ export(etsiParas) export(isfield) export(laskeMuutokset4) export(learn_simple_partition) +export(noIndex) export(ownNum2Str) export(poistaLiianPienet) export(proportion2str) diff --git a/R/noIndex.R b/R/noIndex.R new file mode 100644 index 0000000..210ecd7 --- /dev/null +++ b/R/noIndex.R @@ -0,0 +1,19 @@ +#' @title No index +#' @description Checks that the data contains no index column. +#' @details As input, this function takes two variables from a mixture/admixture +#' result structure. +#' @return puredata: a data contains no index column. +#' @export +noIndex <- function (data, noalle) { + limit <- ifelse(is(noalle, "matrix"), ncol(noalle), length(noalle)) + if (size(data, 2) == limit + 1) { + if (is(data, "matrix")) { + puredata <- data[, -ncol(data)] # remove the index column + } else { + puredata <- data[-length(data)] + } + } else { + puredata <- data + } + return(puredata) +} \ No newline at end of file diff --git a/man/noIndex.Rd b/man/noIndex.Rd new file mode 100644 index 0000000..bf7e5a3 --- /dev/null +++ b/man/noIndex.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/noIndex.R +\name{noIndex} +\alias{noIndex} +\title{No index} +\usage{ +noIndex(data, noalle) +} +\value{ +puredata: a data contains no index column. +} +\description{ +Checks that the data contains no index column. +} +\details{ +As input, this function takes two variables from a mixture/admixture +result structure. +} diff --git a/tests/testthat/test-admix1.R b/tests/testthat/test-admix1.R index 453a1e1..ae33745 100644 --- a/tests/testthat/test-admix1.R +++ b/tests/testthat/test-admix1.R @@ -232,4 +232,19 @@ test_that("computeAllFreqs2 works as expected", { test_that("poistaLiianPienet works as expected", { expect_equal(poistaLiianPienet(100, matrix(1:4, 2), 0), 100) expect_equal(poistaLiianPienet(100, matrix(1:4, 2), -5), 100) +}) + +test_that("noIndex works properly", { + abcd_vec <- letters[1:4] + abcd_mat <- matrix(abcd_vec, 2) + abcdef_mat <- matrix(letters[1:6], 2) + efg_vec <- letters[5:7] + expect_equal(noIndex(abcd_vec, 1:6), abcd_vec) + expect_equal(noIndex(abcd_vec, 1:3), abcd_vec[-4]) + expect_equal(noIndex(abcd_vec, 1:2), abcd_vec) + expect_equal(noIndex(abcd_vec, efg_vec), abcd_vec[-4]) + expect_equal(noIndex(abcd_mat, 1), abcd_mat[, 1]) + expect_equal(noIndex(abcd_mat, 2), abcd_mat[, 1]) + expect_equal(noIndex(abcdef_mat, 1:2), abcdef_mat[, 1:2]) + expect_equal(noIndex(abcdef_mat, abcd_mat), abcdef_mat[, 1:2]) }) \ No newline at end of file