R 编码中的 If-else 语句不起作用

福齐亚

我在 R 中进行了编码,如下所示,

  data1<-c(25,35,60,79,50)
  data2<-c(100,150,170,200,1000)
  
  g1=sort(data1)
  g2=sort(data2)
  
  ybar1<-mean(g1)
  ybar2<-mean(g2)
  
  #BIWEIGHT
  
  med1=median(g1)
  med2=median(g2)
  
  mad1=1.4826*(median(abs(g1-med1)))
  mad2=1.4826*(median(abs(g2-med2)))

  u1=(g1-med1)/(9*mad1)
  u2=(g2-med2)/(9*mad2)
  
  #cat("\nu1:",u1)
  u=rbind(u1,u2)
  print(u)
  
  abs=abs(u)
  print(abs)
  
    for(j in abs){
      if(j < 1){
        num1 = ((g1-med1)^2)*((1-(u1^2))^4)
        den1 = ((1-(u1^2))*(1-5*(u1^2)))
        
        num2 = ((g2-med2)^2)*((1-(u2^2))^4)
        den2 = ((1-(u2^2))*(1-5*(u2^2)))
      }
    }
  
  cat("\num2:",num2)

但是当我手动计算时,对于 data1,每个值 u1 都小于 1,因此编码与我的手动计算是正确的,但是对于 data2,它包含大于 1 的 u2 值。谁能帮我弄清楚为什么发生以及如何解决?先感谢您。

本尼姆沃尔夫斯佩尔茨

在我看来,问题是在if条件内(因此也在for循环内),您总是采用整个向量(g1, g2, u1, u2)。您不会告诉 R仅使用g1 和 g2 中 j<1 的那些值而是使用整个向量多次有值abs是<1。

此外,您将u1组合u2为一个 2 行矩阵,但将 g1 和 g2 分开。这令人困惑,并且会给您带来更多问题。我建议你为两个向量做单独的循环。

你可以这样做:

idx1 <- which(abs(u1) < 1) #Gives you the indexes/positions in vector u1, where abs(u1)<1 is TRUE
idx2 <- which(abs(u2) < 1) #same for u2

for(i in idx1){
               num1[i] = ((g1[i]-med1)^2)*((1-(u1[i]^2))^4)
               den1[i] = ((1-(u1[i]^2))*(1-5*(u1[i]^2)))
               }
for(j in idx2){
               num2[j] = ((g2[j]-med2)^2)*((1-(u2[j]^2))^4)
               den2[j] = ((1-(u2[j]^2))*(1-5*(u2[j]^2)))
               }

这样,num1并且den1有 5 个元素,因为 u1 的所有绝对值都 <1。
相比之下,num2andden2有 4 个元素,因为 u2 的最后一个值是 ca。2.07.

希望这对您有所帮助。

编辑:忘记将索引 ( [i] and [j])添加num1/2den1/ 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带日期和滞后的动态If_else语句:If_else在R中不起作用

基本的if else语句在javascript中不起作用

为什么我的“else”语句在 python 中不起作用?

IF 和 ELSE IF 语句在 MYSQL 查询中不起作用

为什么我的 else if 语句在observeEvent 中不起作用?

为什么 if/else 语句在我的函数中不起作用?

If-else 语句在 javascript/html 中不起作用

html模板中的Django else语句不起作用

C 中的嵌套 if-else 语句不起作用

查询 if 和 else 语句在 mySQL 中不起作用

If/else 语句 elif 在 pycharm 中不起作用

如果/ else语句在android应用中不起作用(else语句始终执行)

将if else语句用于R中的虚拟编码

if else 语句的 else 部分不起作用

R中的If / Else语句

为什么我的Javascript setInterval函数中的else语句不起作用?

为什么我的if-else-if语句在我的数组列表中不起作用?

为什么 if/else 语句在 Object.assign() 和 .map 中不起作用?

输入类型单选按钮检查else语句在jquery中不起作用

If ... else语句以检查NaN和空字符串在JavaScript中不起作用

如果 else 语句在自定义 python 函数中不起作用

Javascript 中的 Else 语句用于事件侦听器不起作用

如果 python 中的语句不起作用,但是返回了 else 值

if else语句中的函数不起作用?

函数和if else语句不起作用

jQuery else if语句似乎不起作用

if和else语句不起作用

jQuery if / else语句不起作用

IF-ELSE语句不起作用