我目前有2个变量,state并且year,我希望将其转换为1个变量,stateyear.
我希望stateyear变量具有以下形式的值:( state_year例如Texas_1962).
如何引用state和year变量中的值来创建新stateyear变量?
那可能是
gen state_year = state + "_" + string(year)
Run Code Online (Sandbox Code Playgroud)
我假设这year是数字.或者可能是
egen state_year = concat(state year), p(_)
Run Code Online (Sandbox Code Playgroud)
它负责所需的任何类型转换.
或者可能是
egen state_year = group(state year), label
Run Code Online (Sandbox Code Playgroud)
它没有给你一个连接下划线.这提出了一个关键点:为什么你认为你需要那个下划线?它只会在图形或表格上看起来很丑陋.如果空间(被认为是)成问题,那么"North Carolina_2013"等等呢?
有关此问题的微缩评论,请参阅http://www.stata-journal.com/sjpdf.html?articlenum=dm0034
这是一个例子:
// create some example data
clear
input ///
str13 state int year
"Noord-Holland" 1962
"Zuid-Holland" 1963
"Utrecht" 1964
"Zeeland" 1965
"Noord-Brabant" 1966
"Limburg" 1967
"Gelderland" 1968
"Flevoland" 1969
"Overijsel" 1970
"Drente" 1971
"Friesland" 1972
"Groningen" 1973
end
// create the variable
gen str18 state_year = state + "_" + string(year)
// admire the result
list
Run Code Online (Sandbox Code Playgroud)
如果+运算符出现在两个字符串之间,则表示Stata必须连接两个字符串.
因此,该部分state + "_"意味着"_"在字符串变量的内容之后添加字符串state.为了确保这+也意味着连接部件"_" + string(year),我使用了string()函数,它将变量的数值year转换为字符串.
该str18部分意味着您希望变量state_year是一个包含18个字符的字符串.这个示例中适用于荷兰国家,但您需要计算具有最长名称的状态中的字符数,并将其加5,以确定您的案例中字符串的最大长度.假设该数字为21,那么您需要替换str18为str21
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |