#' @name tree #' @title Exibe o diretórios em forma de árvore #' @param dir É o path do diretório a ser exibido. Default é o diretório #' de trabalho. #' @return Um arte ascii da estrutura do diretório. #' @author Walmes Zeviani #' @examples #' tree() #' tree("../") tree <- function(dir = ".") { if (Sys.info()["sysname"] == "Linux") { system(sprintf("tree %s -F --charset=ascii", dir)) } } #----------------------------------------------------------------------- #' @name write2Rdoc #' @title Cria o esqueleto da documentação de datasets #' @param dataset Um objeto que seja vetor ou data.frame. #' @param source Uma string que seja a referência bibliografica do #' dataset ou uma url. #' @param overwrite Se TRUE reescreve o arquivo se ele existir. #' @return Não retorna nada, apenas cria arquivos. #' @author Walmes Zeviani #' @examples #' write2Rdoc(iris) #' write2Rdoc(precip) write2Rdoc <- function(dataset, source = "???", overwrite = FALSE) { if (basename(getwd()) != "labestData") { warning("Você não está no diretório raíz do labestData.") } name <- deparse(substitute(dataset)) cld <- class(dataset)[1] i <- cld == c("data.frame", "numeric", "integer") if (all(!i)) { stop("`dataset` de classe não apropriada para a função.") } mid <- switch(c(1, 2, 2)[i], "1" = { c(sprintf(paste( "@format Um \\code{data.frame}", "com %d observações e %d variáveis."), nrow(dataset), ncol(dataset)), "\\describe{", "", rbind(sprintf("\\item{\\code{%s}}{ }", names(dataset)), ""), "}") }, "2" = { sprintf( "@format Um vetor com %d elementos.", length(dataset)) }) ctnt <- c(sprintf("@name %s", deparse(substitute(dataset))), "@title", "@description", "@keywords", strwrap(paste("@source", source), width = 72), "@examples") ctnt <- append(ctnt, value = mid, after = 3) ctnt <- paste("#\'", ctnt) file <- sprintf("./R/%s.R", name) cat(ctnt, sep = "\n") cat(sprintf("Criando o esqueleto da documentação no arquivo %s.", file), "Abra-o e complete com as informações.", sep = "\n") if (!file.exists(file) || overwrite) { cat(ctnt, sep = "\n", file = file) } invisible() } #----------------------------------------------------------------------- #' @name write2txt #' @title Cria arquivo texto (tsv) do dataset #' @param dataset Um objeto que seja vetor ou data.frame. #' @param overwrite Se TRUE reescreve o arquivo se ele existir. #' @return Não retorna nada, apenas cria arquivos. #' @author Walmes Zeviani #' @examples #' write2txt(iris) #' write2txt(precip) write2txt <- function(dataset, overwrite = FALSE) { if (basename(getwd()) != "labestData") { warning("Você não está no diretório raíz do labestData.") } name <- deparse(substitute(dataset)) cld <- class(dataset)[1] whatis <- cld == c("data.frame", "numeric", "integer") if (all(!whatis)) { stop("`dataset` de classe não reconhecida pela função.") } file <- sprintf("./data-raw/%s.txt", name) cat(sprintf("Criando txt do dataset %s em data-raw/.", file), "Não edite na mão esse arquivo.", sep = "\n") if (!file.exists(file) || overwrite) { switch(c(1, 2, 2)[whatis], "1" = { write.table(x = dataset, file = file, quote = FALSE, row.names = FALSE, sep = "\t", fileEncoding = "utf-8") }, "2" = { writeLines(text = as.character(dataset), con = file) }) } } #----------------------------------------------------------------------- #' @name write2rda #' @title Cria arquivo rda do dataset #' @description É uma função wraper para a \code{devtools::use_data()}. #' @param dataset Um objeto que seja vetor ou data.frame. #' @param overwrite Se TRUE reescreve o arquivo se ele existir. #' @return Não retorna nada, apenas cria arquivos. #' @author Walmes Zeviani #' @examples #' write2txt(iris) #' write2txt(precip) write2rda <- function(dataset, overwrite = FALSE) { if (basename(getwd()) != "labestData") { warning("Você não está no diretório raíz do labestData.") } cmd <- sprintf("use_data(%s, overwrite = %d)", deparse(substitute(dataset)), overwrite) eval(parse(text = cmd)) }