【问题标题】:Looping through column to perform amalysis on each循环遍历列以对每个列执行分析
【发布时间】:2021-03-31 13:57:01
【问题描述】:

我有超过 338 列,每列都有不同的药物名称。我想要做的是使用代码遍历所有列。此代码适用于一种特定药物。问题是我有 338 个不同的药物名称。代码是:

NPTESTS 
/INDEPENDENT TEST (PLIN3 CYFIP2 IL2RA HSD3B1 IL2RB PYROXD1 ZBED4 MCTP1 LAMA3 CTSC EDEM1 LIF PIM3 
    PPARA SLC6A11 THNSL2 ZNF697) GROUP (drug_1) MANN_WHITNEY KRUSKAL_WALLIS(COMPARE=PAIRWISE) 
  /MISSING SCOPE=ANALYSIS USERMISSING=EXCLUDE
  /CRITERIA ALPHA=0.05  CILEVEL=95

有什么方法可以循环遍历列并执行测试,而无需一遍又一遍地运行代码块?

【问题讨论】:

    标签: statistics spss spss-modeler


    【解决方案1】:

    您可以尝试将文件重组为长格式,以便所有药物都在一个列中,然后您可以通过拆分文件一次并行运行所有药物的测试:

    varstocases /make drugval from drug_1 to drug_338/index=drugname(drugval).
    sort cases by drugname.
    split file by drugname.
    *now your code .
    NPTESTS 
    /INDEPENDENT TEST (PLIN3 CYFIP2 IL2RA HSD3B1 IL2RB PYROXD1 ZBED4 MCTP1 LAMA3 CTSC EDEM1 LIF PIM3 
        PPARA SLC6A11 THNSL2 ZNF697) GROUP (drugval) MANN_WHITNEY KRUSKAL_WALLIS(COMPARE=PAIRWISE) 
      /MISSING SCOPE=ANALYSIS USERMISSING=EXCLUDE
      /CRITERIA ALPHA=0.05  CILEVEL=95.
    split file off.
    

    您也可以使用 SPSS 宏循环遍历所有药物并逐一测试:

    define testdrugs ()
    !do !drg=1 !to 338
    NPTESTS 
    /INDEPENDENT TEST (PLIN3 CYFIP2 IL2RA HSD3B1 IL2RB PYROXD1 ZBED4 MCTP1 LAMA3 CTSC EDEM1 LIF PIM3 
        PPARA SLC6A11 THNSL2 ZNF697) GROUP !concat("(drug_", !drg, ")") MANN_WHITNEY KRUSKAL_WALLIS(COMPARE=PAIRWISE) 
      /MISSING SCOPE=ANALYSIS USERMISSING=EXCLUDE
      /CRITERIA ALPHA=0.05  CILEVEL=95
    !doend
    !enddefine.
    * the macro is defined, now we can call it.
    testdrugs .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2014-08-17
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多