You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何将同时包含数值和字符的变量转换为数值变量

Stata字符数字混合变量转数值型解决方案

操作思路

「家庭成员数」为字符型变量,同时存储了阿拉伯数字字符串和英文数字单词,只需先统一映射英文数字为对应数值,再转换剩余数字字符串即可。

具体操作代码

方案1:逐行匹配(适合英文数字取值少的场景)

* 生成空的数值型家庭成员数变量
gen hhsize = .
* 匹配已出现的英文数字,可根据你的数据补充更多匹配规则
replace hhsize = 5 if lower(家庭成员数) == "five"
replace hhsize = 6 if lower(家庭成员数) == "six"
* 剩余原本为阿拉伯数字的字符串直接转换为数值
replace hhsize = real(家庭成员数) if missing(hhsize)
* 校验是否存在未匹配的异常取值
tab 家庭成员数 if missing(hhsize)

方案2:批量映射(适合英文数字取值多的场景)

* 定义英文数字与阿拉伯数字的映射关系,可按需扩展
local num_map "one 1 two 2 three 3 four 4 five 5 six 6 seven 7 eight 8 nine 9 ten 10"
* 批量替换变量中的英文数字为阿拉伯数字字符串
foreach word num of local num_map {
    replace 家庭成员数 = ustrregexra(lower(家庭成员数), "`word'", "`num'", .)
}
* 统一转换为数值型变量
gen hhsize = real(家庭成员数)

校验步骤

转换完成后执行以下代码验证匹配准确性:

* 交叉对比原变量和新生成的数值变量
tab 家庭成员数 hhsize, mis

内容的提问来源于stack exchange,提问作者Ricardo Xavier Torres Ortiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 14:09:03