如何创建引用Stata中其他字符串变量的字符串变量?
我目前有两个变量,如何创建引用Stata中其他字符串变量的字符串变量?,stata,Stata,我目前有两个变量,state和year,我希望将其转换为一个变量,stateyear 我希望stateyear变量具有以下形式的值:state\u year(例如Texas\u 1962) 如何引用状态和年份变量中的值来创建新的状态年份变量?以下是一个示例: // create some example data clear input /// str13 state int year "Noord-Holland" 1962 "Zuid-Holland" 1963 "Utrec
state
和year
,我希望将其转换为一个变量,stateyear
我希望stateyear
变量具有以下形式的值:state\u year
(例如Texas\u 1962
)
如何引用状态
和年份
变量中的值来创建新的状态年份
变量?以下是一个示例:
// 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
如果+
运算符出现在两个字符串之间,则表示Stata必须连接两个字符串
因此,部分state+“\u”
意味着在字符串变量state
的内容之后添加字符串“\u”
。为了确保+
对于“quo+string(year)
部分也意味着连接,我使用了string()
函数,它将变量year
的数值转换为字符串
str18
部分表示希望变量state\u year
是一个包含18个字符的字符串。在本例中,这适用于荷兰各州,但您需要计算具有最长名称的州中的字符数,然后再加上5,以确定您案例中字符串的最大长度。假设数字是21,那么您需要将str18替换为str21
gen state_year = state + "_" + string(year)
egen state_year = concat(state year), p(_)
egen state_year = group(state year), label
我假设年
是数字。也可能是
gen state_year = state + "_" + string(year)
egen state_year = concat(state year), p(_)
egen state_year = group(state year), label
它负责所需的任何类型转换
也可能是
gen state_year = state + "_" + string(year)
egen state_year = concat(state year), p(_)
egen state_year = group(state year), label
这不会给你一个连接下划线。这引出了一个关键点:为什么你认为你需要下划线?它只会在图表上看起来很难看。如果空间是(被认为是)一个问题,那么“北卡罗莱纳大学2013”等等呢
有关此问题的微型回顾,请参见Nick解决方案的一个补充。如果状态变量存储为带有值标签的数字(例如
1“Alabama”2“Alaska”
等),我相信您还需要指定decode
选项,从而将标签转换为字符串:
egen state_year = concat(state year), p(_) decode