根据可能存在于多个其他变量中的值创建新的Stata变量

iPlexpen

需要根据可能出现在5个“响应”变量之一中的条目在Stata中创建一个新的二进制变量。

现有数据示例:

Resp1 Resp2 Resp3 Resp4 Resp5

A57 A510 B899 Z781 Q56883

A110 A4589 B11345 Z570 D444

A510 B899 Z4721 Z33 M406

B890 B678 T4487 A57 T112

A57 T112 B890 M119 Z4001

我想做的是:

generate byte A57_Response = 0
replace A57_Response = 1 if Resp1 == "A57" & substr(Resp1, 3, 1) != "2" 

replace A57_Response = 1 if Resp2 == "A57" & substr(Resp2, 3, 1) != "2" 

replace A57_Response = 1 if Resp3 == "A57" & substr(Resp3, 3, 1) != "2" 

replace A57_Response = 1 if Resp4 == "A57" & substr(Resp4, 3, 1) != "2" 

replace A57_Response = 1 if Resp5 == "A57" & substr(Resp5, 3, 1) != "2" 

有没有办法一次搜索所有5个Resp变量?

另外,有没有一种方法可以generate1不写出整个响应的情况下为新的二进制变量?例如,分配1有一个每次Z代码,即使它Z33Z4001或任何其他可能的代码与开始Z由于我正在使用,所以" "我知道它正在寻找完全匹配的大小写,但是还有其他选择吗?

尼克·考克斯

如果字符串变量等于,"A57"则其第三个字符不"2"为多余的条件:其第三个字符始终为"7"

现在的代码只是

 gen wanted = inlist("A57", Resp1, Resp2, Resp3, Resp4, Resp5) 

这些变量之一开始的条件"Z"

 gen desired = 0 
 forval j = 1/5 { 
     replace desired = 1 if substr(Resp`j', 1, 1) == "Z" 
 }

第二个问题不需要循环,因为它也可以使用编写为计算形式inlist()

编辑在您的示例中,Z永远不会出现第二个或更高版本的字符,因此测试的任何出现Z都不会带来误报的风险:

* Example generated by -dataex-. To install: ssc install dataex
clear
input str7 Resp1 str5 Resp2 str8 Resp3 str5 Resp4 str6 Resp5
"A57"  "A510"  "B899"   "Z781" "Q56883"
"A110" "A4589" "B11345" "Z570" "D444"  
"A510" "B899"  "Z4721"  "Z33"  "M406"  
"B890" "B678"  "T4487"  "A57"  "T112"  
"A57"  "T112"  "B890"   "M119" "Z4001" 
end

egen Resp = concat(Resp?), p(" ")
  
gen wanted = strpos(Resp, "Z") > 0

list 

     +--------------------------------------------------------------------------------+
     | Resp1   Resp2    Resp3   Resp4    Resp5                          Resp   wanted |
     |--------------------------------------------------------------------------------|
  1. |   A57    A510     B899    Z781   Q56883     A57 A510 B899 Z781 Q56883        1 |
  2. |  A110   A4589   B11345    Z570     D444   A110 A4589 B11345 Z570 D444        1 |
  3. |  A510    B899    Z4721     Z33     M406      A510 B899 Z4721 Z33 M406        1 |
  4. |  B890    B678    T4487     A57     T112      B890 B678 T4487 A57 T112        0 |
  5. |   A57    T112     B890    M119    Z4001      A57 T112 B890 M119 Z4001        1 |
     +--------------------------------------------------------------------------------+

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据其他几个变量的值创建新变量

来自分类Dev

根据在r中包含特定值的其他变量创建一个新变量

来自分类Dev

根据在r中包含特定值的其他变量创建一个新变量

来自分类Dev

创建的“新”实例的所有成员变量是否存在于堆中而不是堆栈中?

来自分类Dev

R:根据其他名称相似的变量的选择条件创建多个新变量

来自分类Dev

熊猫数据框查找存在于其他列的所有可能值的行

来自分类Dev

根据索引位置和其他变量的值创建新变量

来自分类Dev

根据其他数据集中的其他值创建变量

来自分类Dev

根据其他两个变量的值创建变量

来自分类Dev

熊猫检查多列中的值是否存在于其他列中

来自分类Dev

根据其他变量的条件在数据表中创建新变量

来自分类Dev

根据R中其他两个变量之间的数值差异创建新变量

来自分类Dev

在 Stata 中合并数据库并根据合并数据的身份和值创建新的变量

来自分类Dev

如果存在于其他数组中,则更新数组的值

来自分类Dev

获取存在于ajax内部的变量的值

来自分类Dev

自动添加存在于一个 data.frame 中但在 R 中的其他 data.frames 中缺失的任何变量

来自分类Dev

检查id是否存在于其他表中

来自分类Dev

MongoDB。选择存在于其他集合中的字段

来自分类Dev

密钥存在于复杂的 php 变量中

来自分类Dev

指向只存在于函数 C 中的变量

来自分类Dev

根据其他列中值的大小创建新变量

来自分类Dev

使用R根据其他列创建新变量

来自分类Dev

R:如何根据其他列的名称创建新变量

来自分类Dev

使用R根据其他列创建新变量

来自分类Dev

awk 根据其他列的条件创建新变量

来自分类Dev

R:根据一个列的值存在于另一列中,生成一个虚拟变量

来自分类Dev

根据组中其他列中至少一个变量的出现创建新列

来自分类Dev

测试值是否存在于多个列表中

来自分类Dev

根据其他两个变量在数据框中创建一个新变量

Related 相关文章

  1. 1

    根据其他几个变量的值创建新变量

  2. 2

    根据在r中包含特定值的其他变量创建一个新变量

  3. 3

    根据在r中包含特定值的其他变量创建一个新变量

  4. 4

    创建的“新”实例的所有成员变量是否存在于堆中而不是堆栈中?

  5. 5

    R:根据其他名称相似的变量的选择条件创建多个新变量

  6. 6

    熊猫数据框查找存在于其他列的所有可能值的行

  7. 7

    根据索引位置和其他变量的值创建新变量

  8. 8

    根据其他数据集中的其他值创建变量

  9. 9

    根据其他两个变量的值创建变量

  10. 10

    熊猫检查多列中的值是否存在于其他列中

  11. 11

    根据其他变量的条件在数据表中创建新变量

  12. 12

    根据R中其他两个变量之间的数值差异创建新变量

  13. 13

    在 Stata 中合并数据库并根据合并数据的身份和值创建新的变量

  14. 14

    如果存在于其他数组中,则更新数组的值

  15. 15

    获取存在于ajax内部的变量的值

  16. 16

    自动添加存在于一个 data.frame 中但在 R 中的其他 data.frames 中缺失的任何变量

  17. 17

    检查id是否存在于其他表中

  18. 18

    MongoDB。选择存在于其他集合中的字段

  19. 19

    密钥存在于复杂的 php 变量中

  20. 20

    指向只存在于函数 C 中的变量

  21. 21

    根据其他列中值的大小创建新变量

  22. 22

    使用R根据其他列创建新变量

  23. 23

    R:如何根据其他列的名称创建新变量

  24. 24

    使用R根据其他列创建新变量

  25. 25

    awk 根据其他列的条件创建新变量

  26. 26

    R:根据一个列的值存在于另一列中,生成一个虚拟变量

  27. 27

    根据组中其他列中至少一个变量的出现创建新列

  28. 28

    测试值是否存在于多个列表中

  29. 29

    根据其他两个变量在数据框中创建一个新变量

热门标签

归档