根据sas中另一个字符变量的值重新编码一个字符变量中的值

JQ

jrnlfile是具有日记名称和标识符的数据集。以下是前6个观察点:

id      journal                         issn
56201   ACTA HAEMATOLOGICA              0001-5792
94365   ACTA PHARMACOLOGICA SINICA  
10334   ACTA PHARMACOLOGICA SINICA      1671-4083
55123   ADVANCES IN ENZYME REGULATION   0065-2571
90002   AGING   
10403   AGING                           1945-4589

比较id94365和10334。这些obs的名称相同journal他们需要一样的东西issn缺少值的Obsissn 几乎总是至少有一个伙伴Obs,其中包含匹配的journal名称和正确的issn无论这是什么情况,我都想重新编码丢失的内容,issn以便包含issn其他journal提到的相同内容。修改后的数据集want如下所示:

id      journal                         issn
56201   ACTA HAEMATOLOGICA              0001-5792
94365   ACTA PHARMACOLOGICA SINICA      1671-4083
10334   ACTA PHARMACOLOGICA SINICA      1671-4083
55123   ADVANCES IN ENZYME REGULATION   0065-2571
90002   AGING                           1945-4589
10403   AGING                           1945-4589

我目前在数据步骤中使用if-else语句,issn以为匹配项填充缺失journal

data want;
    set jrnlfile;
         if journal = "ACTA PHARMACOLOGICA SINICA" then issn = "1671-4083";
    else if journal = "AGING"                      then issn = "1945-4589";
    /*continue for 7,000 other journals*/
    run;

但是jrnlfile包含50,000 obs和7,000种独特期刊,因此这需要花费大量时间,并且容易出错。这个答案让我半途而废,但issn不是数字,我无法通过简单地添加值来解决问题。

什么是更有效和系统的方式去wantjrnlfile

萨妮克·日特尼克

您可以使用保留声明。但是此代码有一些限制。要清空日记帐,将设置第一个找到的issn。期刊组必须有一个或多个isn。

proc sort data=JRNLFILE;
    by journal descending issn;
run;

data want;
    set  JRNLFILE;
    retain t_issn;
    by journal descending issn;

    if first.journal then
        do;
            if issn="" then do;
                put "ERROR: there is no issn val for group";
                stop;
            end;
            else t_issn =issn;
        end;

    if issn="" then
        do;
            issn=t_issn;
        end;
run;

例如。如果使用此表:

+-------+------------------------------+-----------+
|  id   |           journal            |    issn   |
+-------+------------------------------+-----------+
| 94365 | ACTA PHARMACOLOGICA SINICA   |           |
| 10334 | ACTA PHARMACOLOGICA SINICA   | 1671-4083 |
|     1 | ACTA PHARMACOLOGICA SINICA   | A_TEST    |
|     2 | ACTA PHARMACOLOGICA SINICA   | WAS       |
|     3 | ACTA PHARMACOLOGICA SINICA   | SATRTED   |
+-------+------------------------------+-----------+

你会得到:

+-------+----------------------------+-----------+--------+
|  id   |          journal           |   issn    | t_issn |
+-------+----------------------------+-----------+--------+
|     2 | ACTA PHARMACOLOGICA SINICA | WAS       | WAS    |
|     3 | ACTA PHARMACOLOGICA SINICA | SATRTED   | WAS    |
|     1 | ACTA PHARMACOLOGICA SINICA | A_TEST    | WAS    |
| 10334 | ACTA PHARMACOLOGICA SINICA | 1671-4083 | WAS    |
| 94365 | ACTA PHARMACOLOGICA SINICA | WAS       | WAS    |
+-------+----------------------------+-----------+--------+

错误示例。如果使用此表:

+-------+------------------------------+-----------+
|  id   |           journal            |    issn   |
+-------+------------------------------+-----------+
| 56201 | ACTA HAEMATOLOGICA           | 0001-5792 |
| 94365 | ACTA PHARMACOLOGICA SINICA   |           |
+-------+------------------------------+-----------+

您将得到一个错误:

错误:群组没有issn val

* t_issn不用理解功能了:))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在jquery中的另一个字符串中间附加一个字符串变量?

来自分类Dev

不能用存储在变量中的另一个字符串替换一个字符串

来自分类Dev

根据另一个字符串/数组,从1个字符串/数组中删除值

来自分类Dev

计算一个字符串在另一个字符串中每个字符的出现次数

来自分类Dev

在另一个字符串中查找自定义变量字符串

来自分类Dev

如何将字符数组中的值与另一个字符进行比较

来自分类Dev

将2列中的值与另一个字符列中的相应位置匹配

来自分类Dev

用字符串中的另一个字符替换“字符”

来自分类Dev

如何将一个字符串值与另一个字符串值进行比较?

来自分类Dev

C将一个字符数组中的一个字符替换为另一个

来自分类Dev

为什么使用 char 变量从文件中读取一个字符又吃了一个下一个字符?

来自分类Dev

R中的性能问题:使用另一个字符向量递增矩阵值

来自分类Dev

Swift 3:无法将 Token 值存储在另一个字符串中

来自分类Dev

如何检查一个字符串变量中的每个字母?

来自分类Dev

如何从另一个字符串获取一个字符串值

来自分类Dev

用另一个字符替换数据框中的字符

来自分类Dev

用另一个字符替换html中的特殊字符

来自分类Dev

Excel:将一个字符中的一个字符替换为另一个字符中的字符?

来自分类Dev

检查一个字符串是否包含Ruby中另一个字符串的所有字符

来自分类Dev

PHP-检查一个字符串是否包含另一个字符串中的任何字符

来自分类Dev

检查一个字符串是否在另一个字符串中的任何字符的最佳方法javascript

来自分类Dev

检查一个字符串是否在另一个字符串中的任何字符的最佳方法javascript

来自分类Dev

JavaScript获取字符串在另一个字符串中的最后一个字符的位置

来自分类Dev

用不包括模式的另一个字符串替换字符串中的一个字符

来自分类Dev

读取一个字符串并使用它来读取另一个文件的变量的值

来自分类Dev

如何在Lua中的另一个字符串中插入一个字符串?

来自分类Dev

如何在MIPS的同一行中打印一个字符串和另一个字符串变量?

来自分类Dev

按值填入一个字符*

来自分类Dev

用另一个字符替换一个字符

Related 相关文章

  1. 1

    如何在jquery中的另一个字符串中间附加一个字符串变量?

  2. 2

    不能用存储在变量中的另一个字符串替换一个字符串

  3. 3

    根据另一个字符串/数组,从1个字符串/数组中删除值

  4. 4

    计算一个字符串在另一个字符串中每个字符的出现次数

  5. 5

    在另一个字符串中查找自定义变量字符串

  6. 6

    如何将字符数组中的值与另一个字符进行比较

  7. 7

    将2列中的值与另一个字符列中的相应位置匹配

  8. 8

    用字符串中的另一个字符替换“字符”

  9. 9

    如何将一个字符串值与另一个字符串值进行比较?

  10. 10

    C将一个字符数组中的一个字符替换为另一个

  11. 11

    为什么使用 char 变量从文件中读取一个字符又吃了一个下一个字符?

  12. 12

    R中的性能问题:使用另一个字符向量递增矩阵值

  13. 13

    Swift 3:无法将 Token 值存储在另一个字符串中

  14. 14

    如何检查一个字符串变量中的每个字母?

  15. 15

    如何从另一个字符串获取一个字符串值

  16. 16

    用另一个字符替换数据框中的字符

  17. 17

    用另一个字符替换html中的特殊字符

  18. 18

    Excel:将一个字符中的一个字符替换为另一个字符中的字符?

  19. 19

    检查一个字符串是否包含Ruby中另一个字符串的所有字符

  20. 20

    PHP-检查一个字符串是否包含另一个字符串中的任何字符

  21. 21

    检查一个字符串是否在另一个字符串中的任何字符的最佳方法javascript

  22. 22

    检查一个字符串是否在另一个字符串中的任何字符的最佳方法javascript

  23. 23

    JavaScript获取字符串在另一个字符串中的最后一个字符的位置

  24. 24

    用不包括模式的另一个字符串替换字符串中的一个字符

  25. 25

    读取一个字符串并使用它来读取另一个文件的变量的值

  26. 26

    如何在Lua中的另一个字符串中插入一个字符串?

  27. 27

    如何在MIPS的同一行中打印一个字符串和另一个字符串变量?

  28. 28

    按值填入一个字符*

  29. 29

    用另一个字符替换一个字符

热门标签

归档