Stata 将字符串数字表达式转换为数字

Stata 将字符串数字表达式转换为数字,stata,Stata,我有一个带有字符串表达式的数据集,如{“1/2”,“0.5”}。如何将这些字符串转换为实际数字?我知道有destring,但它只将“数字字符串”转换为数字;“数字表达式”返回为缺失。问得好。请注意,real()在这里没有帮助。下面是一个粗略的解决方案: clear input str6 myproblem "1 / 2" "0.5" "ln(3)" end gen onesolution = . quietly forval i = 1/`=_N' { replace one

我有一个带有字符串表达式的数据集,如{“1/2”,“0.5”}。如何将这些字符串转换为实际数字?我知道有destring,但它只将“数字字符串”转换为数字;“数字表达式”返回为缺失。

问得好。请注意,
real()
在这里没有帮助。下面是一个粗略的解决方案:

clear 
input str6 myproblem 
"1 / 2"
"0.5"
"ln(3)" 
end 

gen onesolution = .
quietly forval i = 1/`=_N' { 
    replace onesolution = `= myproblem[`i']' in `i'
} 

list 

     +---------------------+
     | myprob~m   onesol~n |
     |---------------------|
  1. |    1 / 2         .5 |
  2. |      0.5         .5 |
  3. |    ln(3)   1.098612 |
     +---------------------+

这是可行的,但我记得几年前在某个地方读到(大约第11版),在Stata中一个一个地重复观察是很慢的。在最新版本中仍然是这样吗?这就是我称之为粗糙的原因之一。循环观察始终是最后的手段。