stata - Stata:反向排序
问题描述
我有一个如下所示的数据集:
id varA varB varC
1 0 10 .
1 0 20 .
1 0 35 .
2 1 60 76
2 1 76 60
2 0 32 .
我想创建一个 varC,它只为值 varA=1 反转 varB 的顺序,否则丢失。
解决方案
这可能会有所帮助:
clear
input id varA varB varC
1 0 10 .
1 0 20 .
1 0 35 .
2 1 60 76
2 1 76 60
2 0 32 .
end
gen group = sum(id != id[_n-1] | varA != varA[_n-1])
sort group, stable
by group: gen wanted = cond(varA == 1, varB[_N - _n + 1], .)
list id var* wanted, sepby(id varA)
+----------------------------------+
| id varA varB varC wanted |
|----------------------------------|
1. | 1 0 10 . . |
2. | 1 0 20 . . |
3. | 1 0 35 . . |
|----------------------------------|
4. | 2 1 60 76 76 |
5. | 2 1 76 60 60 |
|----------------------------------|
6. | 2 0 32 . . |
+----------------------------------+
推荐阅读
- java - “json 解析错误:java.lang.Boolean 类型错误时的值 true 无法转换为 JSONObject”
- java - Vulkan 透视矩阵 - 未按预期运行
- webstorm - WebStorm 实时模板 $SELECTION$ 正则表达式
- javascript - 如何使用 python 在 selenium webdriver Chrome 中启用 javascript
- wordpress - 我的 WPdiscuz 简码出现在页面顶部
- amazon-cloudformation - EKS 工作人员可以承担预先存在的 IAM 角色吗?
- javascript - 如何在响应式 SVG 中保持文本大小?
- java - 无法动态添加 log4j2 appender
- android - 将 textChangedListener 添加到 TextInputEditText
- c++ - std::regex 用于将由冒号分隔的字符串解析为不同的组