我有一个看起来像这样的变量" 88.0 *"或" 79.5"星号是某种东西的旗帜。要提取此标志,我运行
gen newvar = regexm(oldvar,"\*$")
这样可以正常工作,但是我的新变量是浮点数,看起来效率很低。
Stata以字节格式提供存储,那么为什么regexm
命令(指示0/1是否找到匹配)默认为什么?就此而言,为什么generate
(上面缩写为gen
)默认情况下压缩右侧,或者至少作为选项压缩?
答案 0 :(得分:2)
您可以在gen
:
clear
set more off
input ///
str5(var1 var2)
"88.0*" "79.5 "
end
list
gen byte newvar = regexm(var1,"\*$")
list
describe
请注意,Stata没有布尔类型。 0为假,1为真。 generate
的语法是(来自help generate
):
generate [type] newvar[:lblname] =exp [if] [in]
类型出现在括号内,这意味着它是一个选项。
另请参阅help compress
以减少数据使用的内存。