Merge branch 'issue-3' into develop
This commit is contained in:
commit
461975c823
3 changed files with 46 additions and 5 deletions
15
R/computeDiffInCliqCounts.R
Normal file
15
R/computeDiffInCliqCounts.R
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
computeDiffInCliqCounts <- function(cliques, inds) {
|
||||||
|
# Laskee muutoksen CLIQCOUNTS:ssa (tai SEPCOUNTS:ssa, jos syצtteen?
|
||||||
|
# separators) kun yksilצt inds siirretההn. diffInCliqcounts on ncliq*1 taulu,
|
||||||
|
# joka on CLIQCOUNTS:n sarakkeesta josta yksilצt inds siirretההn ja
|
||||||
|
# lisהttהv?sarakkeeseen, johon yksilצt siirretההn.
|
||||||
|
ncliq <- size(cliques, 1)
|
||||||
|
diffInCliqCounts <- zeros(ncliq, 1)
|
||||||
|
ninds <- length(inds)
|
||||||
|
for (i in 1:ninds) {
|
||||||
|
ind <- inds[i]
|
||||||
|
rivit <- rowSums(cliques == ind)
|
||||||
|
diffInCliqCounts <- diffInCliqCounts + rivit
|
||||||
|
}
|
||||||
|
return(diffInCliqCounts)
|
||||||
|
}
|
||||||
18
R/mysetdiff.R
Normal file
18
R/mysetdiff.R
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
mysetdiff <- function(A, B) {
|
||||||
|
# MYSETDIFF Set difference of two sets of positive integers (much faster than
|
||||||
|
# built - in setdiff)
|
||||||
|
# C <- mysetdiff(A, B)
|
||||||
|
# C <- A \ B = { things in A that are not in B }
|
||||||
|
# MATLAB Original by Kevin Murphy, modified by Leon Peshkin
|
||||||
|
if (is.null(A)) {
|
||||||
|
return(vector())
|
||||||
|
} else if (is.null(B)) {
|
||||||
|
return(A)
|
||||||
|
} else { # both non-empty
|
||||||
|
bits <- zeros(1, base::max(base::max(A), base::max(B)))
|
||||||
|
bits[A] <- 1
|
||||||
|
bits[B] <- 0
|
||||||
|
C <- A[as.logical(bits[A])]
|
||||||
|
}
|
||||||
|
return(C)
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,17 @@
|
||||||
context("Spatial mixture")
|
context("Spatial mixture")
|
||||||
|
|
||||||
test_that("functions work with basic input", {
|
test_that("functions work with basic input", {
|
||||||
x <- c(1, 3, 0, 2)
|
q <- c(1, 3, 0, 2)
|
||||||
y <- array(c(1, 3, 2, 4, 5, 7, 6, 8), c(2, 2, 2))
|
w <- array(c(1, 3, 2, 4, 5, 7, 6, 8), c(2, 2, 2))
|
||||||
z <- computeCounts(x, 4, 5, y)
|
e <- computeCounts(q, 4, 5, w)
|
||||||
expect_equal(z$cliqcounts, t(c(1, 1, 1, 0, 0)))
|
r <- matrix(c(5, 3, 3, 6, 4, 4, 7, 9, 1), 3)
|
||||||
expect_equal(z$sepcounts, t(c(0, 0, 0, 1, 0)))
|
t <- 1:5
|
||||||
|
y <- c(4, 3, 1, 4, 8)
|
||||||
|
expect_equal(e$cliqcounts, t(c(1, 1, 1, 0, 0)))
|
||||||
|
expect_equal(e$sepcounts, t(c(0, 0, 0, 1, 0)))
|
||||||
|
expect_equal(computeDiffInCliqCounts(r, 4), matrix(c(0, 1, 1)))
|
||||||
|
expect_equal(computeDiffInCliqCounts(r, 3), matrix(c(0, 1, 1)))
|
||||||
|
expect_equal(computeDiffInCliqCounts(r, 5), matrix(c(1, 0, 0)))
|
||||||
|
expect_equal(computeDiffInCliqCounts(r, 0), matrix(c(0, 0, 0)))
|
||||||
|
expect_equal(mysetdiff(t, y), c(2, 5))
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue