#' 计算数值百分比
#'
#' @param value 数据
#' @param base 基数
#' @param digit 小数位数
#'
#' @return 返回值
#' @export
#'
#' @examples
#' rpt_percent()
rpt_percent <- function(value,base,digit=2) {
ncount <- length(value)
r <- lapply(1:ncount, function(i){
print(i)
print(base[i])
if(is.na(base[i])){
res <- 0
}else{
if(base[i] ==0){
res <-0
}else{
res <- round((value[i] /(base[i] +0.1-0.1) -1)*100,digit)
}
}
})
res <- unlist(r)
}
#' 将向量转化为格式字符串
#'
#' @param vect 向量
#'
#' @return 返回值
#' @export
#'
#' @examples
#' vect_to_string()
vect_to_string <- function(vect=letters) {
res <-paste("'",vect,"'",collapse = ',',sep = '')
return(res)
}
#' 获取上一期信息
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 期间
#'
#' @return 返回值
#' @export
#'
#' @examples
#' md_getLastYearPeriod()
md_getLastYearPeriod <- function(conn=tsda::conn_rds('jlrds'),
FYear =2021,
FPeriod =8
) {
sql <- paste0("SELECT [Fyear] as FYear
,[Fmonth] as FPeriod
FROM [t_md_period]
where FmonthId in
( SELECT
[FmonthId] -1
FROM [t_md_period]
where Fyear = ",FYear," and Fmonth = ",FPeriod," )")
data <- tsda::sql_select(conn,sql)
ncount <- nrow(data)
if(ncount >0){
res = c(data$FYear[1],data$FPeriod[1])
}else{
res = c(2021,1)
}
return(res)
}
#' 判断基础资料是否存在
#'
#' @param conn 连接
#' @param FYear 年份
#' @param FPeriod 期间
#' @param table_name 表名
#'
#' @return 返回值
#' @export
#'
#' @examples
#' md_check_not_exists()
md_check_not_exists <- function(conn=tsda::conn_rds('jlrds'),
FYear =2021,
FPeriod =8,
table_name = 't_mrpt_costCenterRatio_sap'
){
sql <- paste0("select count(1) as FCount
from ",table_name,"
where FYear = ",FYear," and FPeriod = ",FPeriod," ")
data = tsda::sql_select(conn,sql)
info = data$FCount
if(info == 0 ){
res = TRUE
}else{
res = FALSE
}
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.