r - 创建一个确定异常值影响的函数
问题描述
我的总体目标是展示异常值对数据集平均值的影响。我正在尝试创建一个使用异常值“k”的大小作为输入并输出平均值的函数。基本上,如果 x 的第一个值被 k 替换,该函数需要采用任何值“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、x 和 k 的平均值和差值:
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
推荐阅读
- gstreamer - 向 gst_video_convert_sample() 添加属性
- shortcut - 代码模板在 NetBeans 11 中不起作用
- python-3.x - tesseract 中以下代码的字典输出的键值表示什么?
- phpstorm - PhpStorm 一直要求我解锁我的 ssh 私钥
- mongodb - 将 mongo 中的元素移动或移动到其他 json 元素
- android - Android webview截图当前查看部分
- angular - Angular2:为产品构建时输入问题
- sequelize.js - Sequelize 覆盖/更新数据的最佳方式
- java - 处理 SWT 事件监听器
- android - Android Wear OS Watch Face 支持不同的屏幕尺寸