假设我在变量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.
答案 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,.)