Stata 从字符串响应中删除特定字符

Stata 从字符串响应中删除特定字符,stata,Stata,我有一个字符串变量,一些响应在开头有一个额外的字符。所讨论的字符在所有情况下都是一个常量字符。变量是ICD代码。例如,我没有使用G23,而是使用DG23 Stata中是否有方法删除多余的D字符 我的数据是这样的 身份证件 诊断 1. DZ456 2. DG32 3. DY258 4. DD35 5. DS321 6. DD21 7. DA123 有关此领域的基本信息,请参阅帮助字符串函数 * Example generated by -dataex-. To install: ssc insta

我有一个字符串变量,一些响应在开头有一个额外的字符。所讨论的字符在所有情况下都是一个常量字符。变量是ICD代码。例如,我没有使用G23,而是使用DG23

Stata中是否有方法删除多余的D字符

我的数据是这样的

身份证件 诊断 1. DZ456 2. DG32 3. DY258 4. DD35 5. DS321 6. DD21 7. DA123
有关此领域的基本信息,请参阅
帮助字符串函数

* Example generated by -dataex-. To install: ssc install dataex
clear
input byte d str5 diag
1 "DZ456"
2 "DG32" 
3 "DY258"
4 "DD35" 
5 "DS321"
6 "DD21" 
7 "DA123"
end

replace diag = substr(diag, 2, .) if substr(diag, 1, 1) == "D"

list 

     +----------+
     | d   diag |
     |----------|
  1. | 1   Z456 |
  2. | 2    G32 |
  3. | 3   Y258 |
  4. | 4    D35 |
  5. | 5   S321 |
     |----------|
  6. | 6    D21 |
  7. | 7   A123 |
     +----------+

字符串函数的另一种替代方法是使用正则表达式,请参见
help regex

replace diag = regexs(1) if regexm(diag, "^D(.*)")

谢谢你,沃特