如何解决创建确定异常值影响的函数
我的总体目标是证明离群值对数据集平均值的影响。我正在尝试创建一个使用异常值“ 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 举报,一经查实,本站将立刻删除。