变异系数(COVAR)函数

j0pj023g  于 2023-04-18  发布在  其他
关注(0)|答案(2)|浏览(164)

我尝试创建一个函数来计算协方差,如下所示:

covar <- function(x){
    coef<-sd(x)/mean(x)*100
    return(coef)
}

有时当我尝试运行下面的函数时,会出现以下输出:

covar(df$var_leilao) 
[1] NA

我认为这是由于我有一些缺失值,我想在函数中放置一个na.rm = TRUE参数,以运行如下内容:

covar(df$var_leilao, na.rm = TRUE)

我该怎么做?

bybem2ql

bybem2ql1#

你只需要给你的函数添加一个参数,然后在函数体的适当位置引用它的值。这里我添加了一个名为“na.rm”的额外参数,它依次被meansd引用。
通过在函数签名中指定na.rm = TRUE,我告诉R该参数的默认值为TRUE。调用covar(x)与调用covar(x, na.rm = TRUE)相同。

covar <- function(x, na.rm = TRUE) {
  coef <- sd(x, na.rm = na.rm) / mean(x, na.rm = na.rm) * 100
  return(coef)
}
ni65a41a

ni65a41a2#

你可以通过在sd()和mean()函数中合并一个na.rm语句来做到这一点:

# Create variable
var_leilao <- c(seq(1, 100), NA)

# Co-variance function with na.rm (TRUE by default)
covar <- function(x, na.rm = TRUE) {
  coef <- sd(x, na.rm = na.rm) / mean(x, na.rm = na.rm) * 100
  return(coef)
}

# Without NAs
covar(var_leilao)

# With NAs
covar(var_leilao, na.rm = FALSE)

相关问题