stata - “if”语句中的通配符?
问题描述
我有一个以类似方式结尾的变量列表:
variable_1_2
variable_1_3
variable_1_4
variable_2_2
variable_2_3
等等
我想根据所有这些变量的值定义一个变量。如果其中任何一个为 0,我希望我的新变量也为 0:
gen newVar = .
replace newVar = 0 if variable_* == 0
但是,这会返回“无效名称”。
if 语句中不能使用通配符吗?有没有解决的办法?
解决方案
的结果
generate wanted = .
foreach v of var variable_* {
replace wanted = 0 if `v' == 0
}
如果任何参数为 0,则为 0,否则为缺失。
egen anyzero = anymatch(variable_*), values(0)
如果任何参数为 0,将产生一个指示符,如果没有参数,则为 0。如果需要补码,您始终可以将 0 和 1 作为结果翻转。
推荐阅读
- flutter - 在没有 ListView 等的情况下刷新 Flutter 中的小部件或页面
- list - 从循环索引 k 中,获得带有 x_i 的元组 (x_1, x_2, ... x_n)
这个问题的灵感来自,本质上是这个问题的概括: 从循环索引 k,获得对 i,j with i < j?
- node.js - 尝试定义模型时NodeJS Sequelize抛出错误
- python - 如何修复这个基本 Python 程序中没有继续的代码?
- python - Python 程序在使用 ParseFromString 时崩溃
- mysql - 如何在另一个表中有多个主键的情况下创建外键
- linux - 'script' bash 命令挂断在 bash 函数中
- python - Tensorflow:GPU 加速仅在首次运行后发生
- json - 如何只保留键数组中存在的 Postgres jsonb 对象的属性?
- sql - 在 SQL 中,如何删除左侧的前 3 个字符以及特定字符后的右侧的所有字符