代码之家  ›  专栏  ›  技术社区  ›  antecessor

使用两个条件筛选数据集以创建函数

  •  2
  • antecessor  · 技术社区  · 7 年前

    这是我的数据集。有两个分类变量 deciles(带有10个级别,从 dc1到 dc10 )和 population(带有3个级别): sap , td6 sh )。

    假设每个小数点( dc7 ,例如)应该有三个级别的 population ( sap , td6 and sh ),情况也是如此。

    但是,有些小数缺少一个或两个 population levels(请参见 dc1和 dc2)。重要的是要知道,在所有的小数中都存在 sap ,因此 td6 sh 都是不能存在的。

    现在,我想比较一下 sapvssh>, sapvstd6 shvstd6 ,我编写了这个函数,它可能会被进一步编辑和更正:

    diff<-函数(x){
    SAP<-总和(x$平均值[x$人口=“SAP”])
    sh<-总和(x$平均值[x$人口数=“sh”])
    td6<-总和(x$平均值[x$人口数=“td6”])
    
    sapvssh<-(sh*100/sap)-100
    sapvstd6<-(td6*100/sap)-100
    SHVSTD6<-(TD6*100/SH)-100
    
    显示(sapvssh)
    显示(sapvstd6)
    显示(shvstd6)
    }
    

    我需要什么?

    • 当比较sapvssh时,我想把所有meanvalues of sh和meanvalues ofsapthat are present only in the deciles whereshhas data.因此,在这种情况下,它应该是dc7>+dc8>+dc9>+dc10
    • 比较sapvstd6时,使用与之前相同的方法进行sh
    • 比较shvstd6时,两个人口显示数据都应包括在内的地方只有十分位数。
      • 最后三个点位于函数的开头。

        稍后,在函数中,我们计算第二个方面第一个总体的百分比误差。sapvsshcalculate the percentage error of sh respect sap.

        那么,我怎样才能根据sh中的存在来介绍选择小数的过滤器呢?td6?Population(三级:SAP,请TD6SH)。

        enter image description here

        假设,每十分之一(DC7例如)应该具有人口(活力,请TD6型,情况也是如此。

        然而,有些十分之一缺少一两个人口级别(请参见DC1型DC2)。重要的是要知道活力在所有的十进制中都存在,所以TD6型是那些不可能出现的。

        现在,我想比较一下SAPvsSH,请SAPvsTD6SHvsTD6,我编写了这个函数,可以进一步编辑和更正:

        diff <- function(x) {
          SAP <- sum(x$mean[x$Population == "SAP"])
          SH  <- sum(x$mean[x$Population == "SH"])
          TD6 <- sum(x$mean[x$Population == "TD6"])
        
          SAPvsSH   <- (SH*100/SAP)-100
          SAPvsTD6  <- (TD6*100/SAP)-100
          SHvsTD6   <- (TD6*100/SH)-100
        
          show(SAPvsSH)
          show(SAPvsTD6)
          show(SHvsTD6)
        }
        

        我需要什么?

        • 比较时萨普夫斯,我想总结一下meansh的值,以及意思是的值活力只有十分之一的有数据。所以在这种情况下,应该是DC7型+DC8+DC9+DC10型.
        • 比较时SAPVSTd6型,方法与之前相同.
        • 比较时SHVSTD6型,只有两个人口显示数据的十分之一应包括在内。

        最后三个点位于函数的开头。

        稍后,在函数中,我们计算第二个方面第一个总体的百分比误差。萨普夫斯计算sh尊重sap的百分比错误。

        那么,我怎样才能介绍根据存在的情况选择小数的滤波器呢?TD6型是吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   LAP    7 年前

    mean Deciles intersect

    FOO <- function(x){
      SAP <- x$mean[x$Population == "SAP"]
      names(SAP) <- x$Deciles[x$Population == "SAP"]
      SH <- x$mean[x$Population == "SH"]
      names(SH) <- x$Deciles[x$Population == "SH"]
      TD6 <- x$mean[x$Population == "TD6"]
      names(TD6) <- x$Deciles[x$Population == "TD6"]
    
      SAPvsSH <- sum(SH)*100 / sum(SAP[intersect(names(SAP), names(SH))]) - 100
      SAPvsTD6 <- sum(TD6)*100 / sum(SAP[intersect(names(SAP), names(TD6))]) - 100
      SHvsTD6 <- sum(TD6[intersect(names(SH), names(TD6))])*100 / sum(SH[intersect(names(SH), names(TD6))]) - 100
    }