Added proportion2str
This commit is contained in:
parent
be1d759fff
commit
11efa94ee8
6 changed files with 56 additions and 22 deletions
|
|
@ -5,6 +5,7 @@ export(calculatePopLogml)
|
|||
export(computeRows)
|
||||
export(learn_simple_partition)
|
||||
export(ownNum2Str)
|
||||
export(proportion2str)
|
||||
export(randdir)
|
||||
export(repmat)
|
||||
importFrom(stats,runif)
|
||||
|
|
|
|||
21
R/admix1.R
21
R/admix1.R
|
|
@ -674,23 +674,4 @@ admix1 <- function(tietue) {
|
|||
# fclose(fid);
|
||||
# else
|
||||
# diary off
|
||||
# end
|
||||
|
||||
# %------------------------------------------------------
|
||||
|
||||
# function str = proportion2str(prob)
|
||||
# %prob belongs to [0.00, 0.01, ... ,1].
|
||||
# %str is a 4-mark presentation of proportion.
|
||||
|
||||
# if abs(prob)<1e-3
|
||||
# str = '0.00';
|
||||
# elseif abs(prob-1) < 1e-3;
|
||||
# str = '1.00';
|
||||
# else
|
||||
# prob = round(100*prob);
|
||||
# if prob<10
|
||||
# str = ['0.0' num2str(prob)];
|
||||
# else
|
||||
# str = ['0.' num2str(prob)];
|
||||
# end;
|
||||
# end;
|
||||
# end
|
||||
21
R/proportion2str.R
Normal file
21
R/proportion2str.R
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#' @title Convert proportion to string
|
||||
#' @param prob belongs to [0.00, 0.01, ... ,1]
|
||||
#' @return a 4-mark presentation of proportion
|
||||
#' @note The `round` function in R, being ISO-compliant, rounds 8.5 to 8. The
|
||||
#' Matlab equivalent rounds it to 9.
|
||||
#' @export
|
||||
proportion2str <- function (prob) {
|
||||
if (abs(prob) < 1e-3) {
|
||||
str <- '0.00'
|
||||
} else if (abs(prob - 1) < 1e-3) {
|
||||
str <- '1.00'
|
||||
} else {
|
||||
prob <- round(100 * prob)
|
||||
if (prob < 10) {
|
||||
str <- paste0('0.0', as.character(prob))
|
||||
} else {
|
||||
str <- paste0('0.', as.character(prob))
|
||||
}
|
||||
}
|
||||
return(str)
|
||||
}
|
||||
6
TODO.md
6
TODO.md
|
|
@ -29,4 +29,8 @@ Function | Argument | Value | Matlab output | R output
|
|||
---------|----------|-------|---------------|---------
|
||||
`ownNum2Str` | `number` | `NaN` | `'NAN'` | error
|
||||
`ownNum2Str` | `number` | `<vector>` | `'<vector elements>'` | `'<vector elements>'` + warning
|
||||
`repmat` | `length(n)` | `> 2` | > 2D matrix | 2D matrix
|
||||
`repmat` | `length(n)` | `> 2` | > 2D matrix | 2D matrix
|
||||
|
||||
As general remarks, one should keep in mind that:
|
||||
|
||||
- For compliance with IEC 60559, the `round` in base R rounds .5 to the nearest even integer, whereas the homonym function in Matlab rounds up (or down, if negative).
|
||||
21
man/proportion2str.Rd
Normal file
21
man/proportion2str.Rd
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/proportion2str.R
|
||||
\name{proportion2str}
|
||||
\alias{proportion2str}
|
||||
\title{Convert proportion to string}
|
||||
\usage{
|
||||
proportion2str(prob)
|
||||
}
|
||||
\arguments{
|
||||
\item{prob}{belongs to [0.00, 0.01, ... ,1]}
|
||||
}
|
||||
\value{
|
||||
a 4-mark presentation of proportion
|
||||
}
|
||||
\description{
|
||||
Convert proportion to string
|
||||
}
|
||||
\note{
|
||||
The `round` function in R, being ISO-compliant, rounds 8.5 to 8. The
|
||||
Matlab equivalent rounds it to 9.
|
||||
}
|
||||
|
|
@ -37,11 +37,17 @@ test_that("learn*partition behaves like on Matlab", {
|
|||
)
|
||||
})
|
||||
|
||||
test_that("ownNum2Str behaves like on Matlab", {
|
||||
test_that("type convertions behave like on Matlab", {
|
||||
expect_equal(ownNum2Str(1), "1")
|
||||
expect_equal(ownNum2Str(-123456789), "-123456789")
|
||||
expect_equal(ownNum2Str(0), "0")
|
||||
expect_error(ownNum2Str("a"))
|
||||
expect_equal(proportion2str(1), "1.00")
|
||||
expect_equal(proportion2str(0), "0.00")
|
||||
expect_equal(proportion2str(0.4), "0.40")
|
||||
expect_equal(proportion2str(0.89), "0.89")
|
||||
expect_equal(proportion2str(-0.4), "0.0-40") # also bugged in original
|
||||
# TODO: fix after release, as long as it doesn't break anything else
|
||||
})
|
||||
|
||||
test_that("computeRows behaves like on Matlab", {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue