微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建确定异常值影响的函数

如何解决创建确定异常值影响的函数

我的总体目标是证明离群值对数据集平均值的影响。我正在尝试创建一个使用异常值“ k”的大小作为输入并输出平均值的函数。基本上,该函数需要采用任何值“ k”(这是离群值),并且如果x的第一个值被k替换,则返回向量x的平均值。例如,假设数据集是学生群体的身高。第一个值应该是71.3厘米,但孩子不小心放了713厘米。在这种情况下,我希望函数告诉我如果存在值713(k = 713)的异常值,向量的平均值是多少。到目前为止,我有以下内容,其中x是高度数据集的名称

average_err <- function(k) {
x[1] <- k
mean(x[1])
}

然后计算平均值,如果离群值为713

average_err(713)

但是,我的输出始终与输入相同。有人可以帮我吗?

解决方法

我建议:

average_err <- function(x,k) {
mean(c(x,k))
}

在上面,您没有将x值之一替换为离群值,而是向现有的x-vactor添加离群值。正如@SteveM所建议的那样,您还应该使函数以x作为参数

x <- rnorm(25)
average_err(x,100)
# [1] 3.627824

您还可以构建它以同时打印原始x的均值,带有k的x和差异:

average_err <- function(x,k) {
  m1 <- mean(x)
  m2 <- mean(c(x,k))
  d <- m2-m1
  out <- data.frame(mean = c(m1,m2,d))
  rownames(out) = c("x","x,k","difference")
  out
}
average_err(x,100)
#                  mean
# x          -0.2270631
# x,k         3.6278239
# difference  3.8548870
,

我不确定我是否理解得很好,但是在您的情况下,我宁愿将“ mean(x [1])”替换为“ mean(x)”。如果您写的是mean(x [1]),则只会计算一个值的平均值,该值已替换为离群值k。

average_err <- function(k) {
x[1] <- k
mean(x)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。