如何在一个变量中分割字符串以创建两个变量?

时间:2018-10-09 13:37:09

标签: stata

假设我在变量Names下有一个名称列表:

Beckham, Benjamin  
Roy, Andrew R. 
Shaunson, David T.

如何创建两个变量,一个名为Last_name,另一个名为First_name

变量Last_name将是一个包含以下内容的列表:

Beckham
Roy
Shaunson

变量First_name将是一个包含以下内容的列表:

Benjamin
Andrew R.
David T.

2 个答案:

答案 0 :(得分:2)

您对所需内容的了解将导致您寻找名为split的Stata命令。寻求(例如search),您会发现。

clear 
input str42 whatever 
"Beckham, Benjamin" 
"Roy, Andrew R."
"Shaunson, David T."
end 

split whatever, parse(,) 
rename (whatever?) (lastname firstname) 

list 

     +--------------------------------------------+
     |           whatever   lastname    firstname |
     |--------------------------------------------|
  1. |  Beckham, Benjamin    Beckham     Benjamin |
  2. |     Roy, Andrew R.        Roy    Andrew R. |
  3. | Shaunson, David T.   Shaunson     David T. |
     +--------------------------------------------+

答案 1 :(得分:0)

我进行了研究,找到了另一种解决方案:

generate inbet = strpos(Names, ",")
generate str1 Last_name = "" 
replace Last_name = substr(inbet,1,inbet - 1)
generate str1 First_name = "" 
replace First_name = substr(Name,inbet + 1,.)