From 692cd321962677c24f67c1fa5c1e4bda9944f872 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Tue, 20 Mar 2018 16:39:15 -0300 Subject: [PATCH 01/19] fix (intentional) error in format.interval() example --- man/format.interval.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/format.interval.Rd b/man/format.interval.Rd index d086a14..8ab960f 100644 --- a/man/format.interval.Rd +++ b/man/format.interval.Rd @@ -53,7 +53,7 @@ Felipe Figueiredo \examples{ format.interval(c(1.756, 1.823)) -format.interval(1.5, 1) # error: 1.5 is not an interval +# format.interval(1.5, 1) # error: 1.5 is not an interval # Input is character format.interval(c("1.756", "1.823")) From 5d44dccd444dcc4a14d720ac7134bd6c3bc45ad8 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Tue, 20 Mar 2018 16:39:35 -0300 Subject: [PATCH 02/19] use x in format.float code, as in the doc --- R/format.float.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/format.float.R b/R/format.float.R index 13e835a..c423fa3 100644 --- a/R/format.float.R +++ b/R/format.float.R @@ -1,5 +1,5 @@ -format.float <- function(value, digits = 2) { - value <- suppressWarnings(as.numeric(value)) - value <- formatC(value, format = "f", digits = digits) - value +format.float <- function(x, digits = 2) { + x <- suppressWarnings(as.numeric(x)) + x <- formatC(x, format = "f", digits = digits) + x } From 82e66b923ee8f10ac05769e44aebe6c8798cfbe7 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Tue, 20 Mar 2018 16:39:51 -0300 Subject: [PATCH 03/19] fix error in format.float() example --- man/format.float.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/format.float.Rd b/man/format.float.Rd index 03abff4..5e32566 100644 --- a/man/format.float.Rd +++ b/man/format.float.Rd @@ -62,7 +62,7 @@ format.float("1.12543") format.float(c("1.756", "1.823")) # Useful for data frames -DF <- data.frame(num = c(1.756, 1.823), char = c("1.756", "1.823"), stringsAsFactors = F) +DF <- data.frame(num = c(1.756, 1.823), char = c("1.756", "1.823"), stringsAsFactors = FALSE) transform(DF, num = format.float(num), char = format.float(char)) } % Add one or more standard keywords, see file 'KEYWORDS' in the From b3c215412740edebefe4f91e8feef43de53ed07d Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Tue, 20 Mar 2018 16:41:05 -0300 Subject: [PATCH 04/19] fix arguments in format.float() doc --- man/format.float.Rd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/format.float.Rd b/man/format.float.Rd index 5e32566..c5bf37b 100644 --- a/man/format.float.Rd +++ b/man/format.float.Rd @@ -11,11 +11,11 @@ Format numbers, given a `digits` argument as significant decimal places. {Numbers are always assumed to be \code{\link[base]{double}}.} } \usage{ -format.float(x) +format.float(x, digits) } %- maybe also 'usage' for other objects documented here. \arguments{ - \item{value}{ + \item{x}{ Value to be formatted. Input can be a numeric or character value. } From 9ec846a831271afe614b1b4d0f3200f922152891 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Tue, 20 Mar 2018 16:48:50 -0300 Subject: [PATCH 05/19] predint documented in the README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1559cf6..c4ba16c 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ To install the *development* version, use the following command: - `geosd` - `geocv` - `logsd2cv` +- `predint` ## Report template From 6cacdbbcf6c0b996c4df68ea23f99088fd2ca877 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Fri, 11 May 2018 10:55:35 -0300 Subject: [PATCH 06/19] version bump --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8337dea..a2acba8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: philsfmisc Type: Package Title: philsf's miscellaneous R functions -Version: 0.5.1 +Version: 0.6.0 Authors@R: person("Felipe", "Figueiredo", email = "philsf79@gmail.com", role = c("aut", "cre")) Description: Miscellaneous R functions for convenient data analyses. License: GPL-2 From 6aec2216b75a3ac2a6d292d644c8a421931cfc84 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Fri, 11 May 2018 10:57:22 -0300 Subject: [PATCH 07/19] initial prototype --- R/format.pct.R | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 R/format.pct.R diff --git a/R/format.pct.R b/R/format.pct.R new file mode 100644 index 0000000..209e331 --- /dev/null +++ b/R/format.pct.R @@ -0,0 +1,3 @@ +format.pct <- function(p, digits = 0) { + format.float(p*100, digits) +} From e90982301042fa543275a418438820435bf12391 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Fri, 11 May 2018 10:58:05 -0300 Subject: [PATCH 08/19] include % symbol by default --- R/format.pct.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/format.pct.R b/R/format.pct.R index 209e331..40d1c88 100644 --- a/R/format.pct.R +++ b/R/format.pct.R @@ -1,3 +1,5 @@ -format.pct <- function(p, digits = 0) { - format.float(p*100, digits) +format.pct <- function(p, digits = 0, pct.symbol = TRUE) { + symbol <- "%" + if (!pct.symbol) symbol <- NULL + paste0(format.float(p*100, digits), symbol) } From 466322110abd17140e02d810f0d75b872b488d43 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Fri, 11 May 2018 10:58:23 -0300 Subject: [PATCH 09/19] prototype Rdoc --- man/format.pct.Rd | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 man/format.pct.Rd diff --git a/man/format.pct.Rd b/man/format.pct.Rd new file mode 100644 index 0000000..cef2d6a --- /dev/null +++ b/man/format.pct.Rd @@ -0,0 +1,63 @@ +\name{format.pct} +\alias{format.pct} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{ +Convenience function to format proportions as percentages +} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +format.pct(p, digits = 0, pct.symbol = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{p}{ +%% ~~Describe \code{x} here~~ + } + \item{digits}{ + + } + \item{pct.symbol}{ + + } +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function (x) +{ + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line From 508a4ad87a6f4d8fe20c8024a9a84d70c1ac1bb3 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Fri, 25 May 2018 17:16:11 -0300 Subject: [PATCH 10/19] styles updated --- .../Relatorio/skeleton/misc/style.docx | Bin 37262 -> 36965 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 inst/rmarkdown/templates/Relatorio/skeleton/misc/style.docx diff --git a/inst/rmarkdown/templates/Relatorio/skeleton/misc/style.docx b/inst/rmarkdown/templates/Relatorio/skeleton/misc/style.docx old mode 100644 new mode 100755 index d9ecb2eda79324179177e32ee2275bdbe5832969..e4bdc61692ae26936d81953918b5f3a7334d9082 GIT binary patch delta 21349 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 LV<&*Xes}!`w3c?A delta 21689 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%0D3gG*)7{Je!;(r{twY~2Qz@4l;!H41A zrZAi|bHB5>ECz%^ULJPdg1(C>^)@4&i1BN{GgIB@xj1Q%7~ZTmqWn|DJPZ_c#4(`t zi<*yR{#ApIhrVw~XL3}s-!GrlUTU7B)c)oOMxXgbhV*Eszvdbe_DxTe5Mgr_Rp-iF zY1$EGceYVGgeN-DjY`Tu2EhiUz4(poVzTWE4FXmw^0#|C#R@aaOQ6gD;2PRcKv+^# z7NDzFk7PmzcY@{x3EN0!WFNpKRK~=O2o!s#tdUmlLVMp0|M9J->-AtlYR;_e9?zLg z{_d3fbmqqR8jGTAwC46|sjGFo(Cl(buahtzmM;bOP7`7ke&hdVF6oC3!{w0vH?AFe zX2|n{3GN7L7Gt##(~AaPhrBbhudf}P7}X{B9@pd5g3(t6L2qW9Dmu$8y@-4hPqsXm zjy{YS8a--M=*~OvffwJuGr@+Q7DgVAxXD(kIGNyvU5RIVK)JQ@*E`CDNt?&SOEzO@ zIU=+wEn}32lXruC32RlZcGU*yOA&O;fK{G};{IZlIP25ecbQ^x{w-I1=>VOXgytQ} z82?v;VAl_;TvK*lqhs=#$-v0%nA4kk3O2uvE@mf|2G6nj3Q*Ldv-QX@i7`(OI z>=L`D{Ao6HI^2Au)bhr}!hX=|%lx6opCm2y;MxTZ1%b~g-NZBVyN)hhSeinTWSu9} z*w-(#Al6M+zC4U8pH8-)9VX`6IKxWbv`< z65c(zZ*$qrTOrzBLW8k&zZ6Wd)4!Y1X2*<;JqkVt7A3}E_tiZp)Krl2klHZG{ z(Q|7kZyXcwuhSXSR3DWu0snBA@`T#QaRYy!YW!ke{jX7ZL#yLtFxUg32XTVHziUC% zi%{sJ|1sVms8l=~@bAJ36~n(oLVufDFw{Su1^D+ik3uj1^GoPq(AIcX;P1SShDQ1O kanwjF0(u?K4*WYspfsX>=|lZC( Date: Sat, 30 Jun 2018 20:17:57 -0300 Subject: [PATCH 11/19] default to 1 digit for percentages --- R/format.pct.R | 2 +- man/format.pct.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/format.pct.R b/R/format.pct.R index 40d1c88..278919e 100644 --- a/R/format.pct.R +++ b/R/format.pct.R @@ -1,4 +1,4 @@ -format.pct <- function(p, digits = 0, pct.symbol = TRUE) { +format.pct <- function(p, digits = 1, pct.symbol = TRUE) { symbol <- "%" if (!pct.symbol) symbol <- NULL paste0(format.float(p*100, digits), symbol) diff --git a/man/format.pct.Rd b/man/format.pct.Rd index cef2d6a..b2cef92 100644 --- a/man/format.pct.Rd +++ b/man/format.pct.Rd @@ -8,7 +8,7 @@ Convenience function to format proportions as percentages %% ~~ A concise (1-5 lines) description of what the function does. ~~ } \usage{ -format.pct(p, digits = 0, pct.symbol = TRUE) +format.pct(p, digits = 1, pct.symbol = TRUE) } %- maybe also 'usage' for other objects documented here. \arguments{ From 0f64f65b35209c2a2d5ea751ebd73429542f6c3b Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sat, 30 Jun 2018 20:34:37 -0300 Subject: [PATCH 12/19] doc: examples --- man/format.pct.Rd | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/man/format.pct.Rd b/man/format.pct.Rd index b2cef92..b98b7e4 100644 --- a/man/format.pct.Rd +++ b/man/format.pct.Rd @@ -48,14 +48,13 @@ format.pct(p, digits = 1, pct.symbol = TRUE) %% ~~objects to See Also as \code{\link{help}}, ~~~ } \examples{ -##---- Should be DIRECTLY executable !! ---- -##-- ==> Define data, use random, -##-- or do help(data=index) for the standard data sets. +format.pct(.1) +format.pct(c(.42, .99), 0) -## The function is currently defined as -function (x) -{ - } +m <- 10*matrix(c(1, 1.1, .9, 2), nrow = 2) +format.pct(fisher.test(m)$p.value) +format.pct(fisher.test(5*m)$p.value) +format.pct(fisher.test(m)$conf.int) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. From f3e70621d6a80d3b3021ec0fb53035452d8e8432 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sat, 30 Jun 2018 23:42:29 -0300 Subject: [PATCH 13/19] doc: args and value --- man/format.pct.Rd | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/man/format.pct.Rd b/man/format.pct.Rd index b98b7e4..c85f229 100644 --- a/man/format.pct.Rd +++ b/man/format.pct.Rd @@ -12,26 +12,15 @@ format.pct(p, digits = 1, pct.symbol = TRUE) } %- maybe also 'usage' for other objects documented here. \arguments{ - \item{p}{ -%% ~~Describe \code{x} here~~ - } - \item{digits}{ - - } - \item{pct.symbol}{ - - } + \item{p}{a numeric vector assumed to be a proportion.} + \item{digits}{the number of decimal digits to be used in the output.} + \item{pct.symbol}{(logical) whether or not to include the percent sign in the output.} } \details{ %% ~~ If necessary, more details than the description above ~~ } \value{ -%% ~Describe the value returned -%% If it is a LIST, use -%% \item{comp1 }{Description of 'comp1'} -%% \item{comp2 }{Description of 'comp2'} -%% ... -} +A character value formatted as percentages} \references{ %% ~put references to the literature/web site here ~ } From 317c1bd39c044184d1d3f74ab0e2a0757a66bad9 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sat, 30 Jun 2018 23:58:43 -0300 Subject: [PATCH 14/19] Signatures field at the start of the report --- .../templates/Relatorio/skeleton/skeleton.Rmd | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/inst/rmarkdown/templates/Relatorio/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/Relatorio/skeleton/skeleton.Rmd index c1ce455..1820029 100644 --- a/inst/rmarkdown/templates/Relatorio/skeleton/skeleton.Rmd +++ b/inst/rmarkdown/templates/Relatorio/skeleton/skeleton.Rmd @@ -48,6 +48,29 @@ kable(history) --- +# Assinaturas + +```{r, echo=FALSE} +sig.field <- "__________________________" +date.field <- "_____________" +Stat <- c("Elaborador", "Nome", "Função", sig.field, date.field) +Reviewer <- c("Revisado por", "", "", sig.field, date.field) +Approver <- c("Verificado por", "", "", sig.field, date.field) +Final.Approver <- c("Aprovação final", "", "", sig.field, date.field) + +sigs <- rbind( + Stat + , Reviewer + , Approver + , Final.Approver + ) +rownames(sigs) <- NULL +colnames(sigs) <- c("Papel", "Nome", "Função", "Assinatura", "Data") + +# pander(sigs, split.cells = c(9, 14, 14, 16, 8), split.table = Inf) +kable(sigs) +``` + # Lista de abreviaturas # Introdução From f517a7b45c6768238235e8a6c87e7ed5d2eafe71 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sun, 1 Jul 2018 00:08:14 -0300 Subject: [PATCH 15/19] use same arguments in function and doc --- R/cv2logsd.R | 4 ++-- R/cv2logvar.R | 4 ++-- R/geocv.R | 4 ++-- R/geomean.R | 6 +++--- R/geosd.R | 4 ++-- R/logsd2cv.R | 4 ++-- R/logvar2cv.R | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/R/cv2logsd.R b/R/cv2logsd.R index 217abd9..ec9d318 100644 --- a/R/cv2logsd.R +++ b/R/cv2logsd.R @@ -1,4 +1,4 @@ -cv2logsd <- function(CV) { - SD <- sqrt( cv2logvar(CV) ) +cv2logsd <- function(x) { + SD <- sqrt( cv2logvar(x) ) SD } diff --git a/R/cv2logvar.R b/R/cv2logvar.R index e9651e0..f61aae5 100644 --- a/R/cv2logvar.R +++ b/R/cv2logvar.R @@ -1,4 +1,4 @@ -cv2logvar <- function( CV ) { - VAR <- (log((CV/100)^2 + 1))/(log(10)^2) +cv2logvar <- function( x ) { + VAR <- (log((x/100)^2 + 1))/(log(10)^2) VAR } diff --git a/R/geocv.R b/R/geocv.R index 21a255a..a48e536 100644 --- a/R/geocv.R +++ b/R/geocv.R @@ -1,4 +1,4 @@ -geocv <- function(datavector, digits = 2, na.rm = TRUE) { - logsd <- sd(log10(datavector), na.rm = na.rm) +geocv <- function(x, digits = 2, na.rm = TRUE) { + logsd <- sd(log10(x), na.rm = na.rm) logsd2cv(logsd, digits = digits, na.rm = na.rm) } diff --git a/R/geomean.R b/R/geomean.R index 3b6af7e..15d4a4f 100644 --- a/R/geomean.R +++ b/R/geomean.R @@ -1,4 +1,4 @@ -geomean <- function(datavector) { - datavector[(datavector == 0)] <- NA # discard null values - 10^mean(log10(datavector), na.rm = T) +geomean <- function(x) { + x[(x == 0)] <- NA # discard null values + 10^mean(log10(x), na.rm = T) } diff --git a/R/geosd.R b/R/geosd.R index 84574bf..6d2a657 100644 --- a/R/geosd.R +++ b/R/geosd.R @@ -1,3 +1,3 @@ -geosd <- function(datavector) { - 10^sd(log10(datavector)) +geosd <- function(x) { + 10^sd(log10(x)) } diff --git a/R/logsd2cv.R b/R/logsd2cv.R index 34ae5e4..6646b5c 100644 --- a/R/logsd2cv.R +++ b/R/logsd2cv.R @@ -1,3 +1,3 @@ -logsd2cv <- function(logsd, digits = 2, na.rm = TRUE) { - round(sqrt(exp((log(10)^2)*logsd^2) - 1)*100 , digits) +logsd2cv <- function(x, digits = 2, na.rm = TRUE) { + round(sqrt(exp((log(10)^2)*x^2) - 1)*100 , digits) } diff --git a/R/logvar2cv.R b/R/logvar2cv.R index 478d91d..7473a9c 100644 --- a/R/logvar2cv.R +++ b/R/logvar2cv.R @@ -1,3 +1,3 @@ -logvar2cv <- function(var, digits = 2, na.rm = TRUE) { - round(sqrt(exp((log(10)^2)*var) - 1)*100 , digits) +logvar2cv <- function(x, digits = 2, na.rm = TRUE) { + round(sqrt(exp((log(10)^2)*x) - 1)*100 , digits) } From c0190b2ede4d2f395a13832bcbe59458d250e1c9 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sun, 1 Jul 2018 00:14:38 -0300 Subject: [PATCH 16/19] remove `digits` argument in computation functions Functions used to compute results should never round such results --- R/geocv.R | 4 ++-- R/logsd2cv.R | 4 ++-- R/logvar2cv.R | 4 ++-- man/geocv.Rd | 5 +---- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/R/geocv.R b/R/geocv.R index a48e536..ccf0885 100644 --- a/R/geocv.R +++ b/R/geocv.R @@ -1,4 +1,4 @@ -geocv <- function(x, digits = 2, na.rm = TRUE) { +geocv <- function(x, na.rm = TRUE) { logsd <- sd(log10(x), na.rm = na.rm) - logsd2cv(logsd, digits = digits, na.rm = na.rm) + logsd2cv(logsd, na.rm = na.rm) } diff --git a/R/logsd2cv.R b/R/logsd2cv.R index 6646b5c..7bdd1c6 100644 --- a/R/logsd2cv.R +++ b/R/logsd2cv.R @@ -1,3 +1,3 @@ -logsd2cv <- function(x, digits = 2, na.rm = TRUE) { - round(sqrt(exp((log(10)^2)*x^2) - 1)*100 , digits) +logsd2cv <- function(x, na.rm = TRUE) { + sqrt(exp((log(10)^2)*x^2) - 1)*100 } diff --git a/R/logvar2cv.R b/R/logvar2cv.R index 7473a9c..e390923 100644 --- a/R/logvar2cv.R +++ b/R/logvar2cv.R @@ -1,3 +1,3 @@ -logvar2cv <- function(x, digits = 2, na.rm = TRUE) { - round(sqrt(exp((log(10)^2)*x) - 1)*100 , digits) +logvar2cv <- function(x, na.rm = TRUE) { + sqrt(exp((log(10)^2)*x) - 1)*100 } diff --git a/man/geocv.Rd b/man/geocv.Rd index ec53f9f..5f81f4f 100644 --- a/man/geocv.Rd +++ b/man/geocv.Rd @@ -8,15 +8,12 @@ %% ~~ A concise (1-5 lines) description of what the function does. ~~ } \usage{ -geocv(x, digits = 2, na.rm = TRUE) +geocv(x, na.rm = TRUE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ %% ~~Describe \code{x} here~~ -} - \item{digits}{ -%% ~~Describe \code{digits} here~~ } \item{na.rm}{ %% ~~Describe \code{na.rm} here~~ From 89f70e4f976950c230a2655e686a26c82fd4ab06 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sun, 1 Jul 2018 00:31:39 -0300 Subject: [PATCH 17/19] remove unused argument --- R/geocv.R | 2 +- R/logsd2cv.R | 2 +- R/logvar2cv.R | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/geocv.R b/R/geocv.R index ccf0885..a181148 100644 --- a/R/geocv.R +++ b/R/geocv.R @@ -1,4 +1,4 @@ geocv <- function(x, na.rm = TRUE) { logsd <- sd(log10(x), na.rm = na.rm) - logsd2cv(logsd, na.rm = na.rm) + logsd2cv(logsd) } diff --git a/R/logsd2cv.R b/R/logsd2cv.R index 7bdd1c6..7958a1f 100644 --- a/R/logsd2cv.R +++ b/R/logsd2cv.R @@ -1,3 +1,3 @@ -logsd2cv <- function(x, na.rm = TRUE) { +logsd2cv <- function(x) { sqrt(exp((log(10)^2)*x^2) - 1)*100 } diff --git a/R/logvar2cv.R b/R/logvar2cv.R index e390923..953e84e 100644 --- a/R/logvar2cv.R +++ b/R/logvar2cv.R @@ -1,3 +1,3 @@ -logvar2cv <- function(x, na.rm = TRUE) { +logvar2cv <- function(x) { sqrt(exp((log(10)^2)*x) - 1)*100 } From b0b3b42cf5a93d8107c37e24384a8b4f92c6ab5c Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sun, 1 Jul 2018 00:47:53 -0300 Subject: [PATCH 18/19] declare all functions in README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c4ba16c..a64a828 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,15 @@ To install the *development* version, use the following command: - `format.float` - `format.interval` +- `format.pct` - `is.within` - `geomean` - `geosd` - `geocv` - `logsd2cv` +- `logvar2cv` +- `cv2logsd` +- `cv2logvar` - `predint` ## Report template From b6c0ae84b9366660dfa6e69353bb95b5521e10a1 Mon Sep 17 00:00:00 2001 From: Felipe Figueiredo Date: Sun, 1 Jul 2018 00:49:47 -0300 Subject: [PATCH 19/19] missing word "interval" --- man/predint.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/predint.Rd b/man/predint.Rd index e72ffad..5da3a77 100644 --- a/man/predint.Rd +++ b/man/predint.Rd @@ -4,7 +4,7 @@ \title{Prediction Intervals for given data %% ~~function to do ... ~~ } -\description{Compute a prediction of a vector, which is assumed normally distributed with unknown mean and variance. +\description{Compute a prediction interval of a vector, which is assumed normally distributed with unknown mean and variance. %% ~~ A concise (1-5 lines) description of what the function does. ~~ } \usage{