将变量从字符串转换为数字

Transforming a variable from string to numeric

我正在尝试将二进制变量从字符串(例如“男”或“女”)转换为二进制(0 和 1)。我尝试了以下内容:

replace q1=1 if q1=="Female"

但我收到以下错误:type mismatch。问题是什么,我该如何解决?

请注意,我不想创建新变量,而只是有条件地替换现有变量中的值。

很遗憾,您不能那样做。您必须创建一个新变量。 问题是 q1 当前是字符串类型。所以它不能存储数值数据。

为什么不创建一个新变量,而“删除”旧变量呢?

encode q1, gen(q1b)
drop q1
ren q1b q1

我找到了解决办法:把它变成一个数字类型的字符串,然后使用 destring 命令。

replace q1="1" if q1=="Female"
destring q1, replace