用于替换R中的值的自定义函数

时间:2015-12-22 22:56:21

标签: r

我正在尝试创建一个函数来替换变量中的异常值:

outlier_upper_replace <- function(x, level=1.5) {
  lowerq = quantile(x, na.rm=TRUE)[2]
  upperq = quantile(x, na.rm=TRUE)[4]
  iqr = upperq - lowerq
  outlier_upper = (iqr * level) + upperq
  x[x > outlier_upper] <- outlier_upper
}

我无法理解为什么outlier_upper_replace(prod$varname)没有取代价值。

如果我运行以下代码(这是上述函数的特例),则替换该值:

level = 1.5
lowerq = quantile(prod$varname, na.rm=TRUE)[2]
upperq = quantile(prod$varname, na.rm=TRUE)[4]
iqr = upperq - lowerq
outlier_upper = (iqr * level) + upperq
prod$varname[prod$varname > outlier_upper] <- outlier_upper

有关为何发生这种情况的任何见解?

编辑:示例

set.seed(1)
x <- rnorm(100)
x <- c(-10, x, 10)

boxplot(x, main="start boxplot")

#function to bin-in upper outliers
outlier_upper_replace <- function(x, level=1.5) {
  lowerq = quantile(x, na.rm=TRUE)[2]
  upperq = quantile(x, na.rm=TRUE)[4]
  iqr = upperq - lowerq
  outlier_upper = (iqr * level) + upperq
  x[x > outlier_upper] <- outlier_upper
  return(x)
}

outlier_upper_replace(x)

boxplot(x, main="end boxplot")

1 个答案:

答案 0 :(得分:2)

添加

1- index.php Page :
<form action="act.php">
<input type="text"  id="log"  placeholder="Login.."><br>
<input type="password" id="Psw" placeholder="Password.."><br>
<input type="submit" value="Connecter">
</form>

2- act.php Page :
<?php 
echo "l'authentification a ete passe avec succes";
 ?>

到你的功能结束。

R函数的返回值是函数体中最后一个表达式的结果。由于您修改了最后一个表达式中的向量,因此没有结果,您必须显式返回结果。