【问题标题】:Split IDs in categorical variables在分类变量中拆分 ID
【发布时间】:2020-01-21 11:57:36
【问题描述】:

我有一个带有 ID 的变量:

clear

input ID
1
.
2
1
.
3
4
5
4
4
6
end

如何以 ID 作为名称和 12 的值创建单独的分类变量(如果生成的变量与 ID 匹配,则为后者)?

例如,变量_ID_1 应如下所示:

2
.
1
2
.
1
1
1
1
1
1

有什么想法吗?

【问题讨论】:

    标签: stata


    【解决方案1】:

    另一种方法:

    clear
    
    input ID
    1
    .
    2
    1
    .
    3
    4
    5
    4
    4
    6
    end
    
    forvalues j = 1/6 { 
        generate ID_`j' = 1 + (ID == `j') if ID != . 
    } 
    
    list 
    

    【讨论】:

    • 请注意,1 表示身份,0 表示差异,缺失表示缺失将更适合最可能的用途。
    • 这个解决方案在这里有效,但我的解决方案更通用,可以在不知道任何关于 ID 的情况下使用,包括值之间是否存在间隙。
    • @PearlySpencer:你是对的;我没有异议,我赞成你的。接受权在 OP 手中,而不是我的给予。在其他线程中,您曾主张准确回答所提出的问题,而不是推测或想象一个更笼统的问题。否则我的贡献是首先写separate
    • 该评论留给 OP,以防他/她回来。循环更直观,因此对于 OP 接受您的答案并不感到惊讶。
    • 很公平。我不知道,真的。我与对循环一无所知的非程序员进行了很多互动。相反,SO 的读者应该是程序员,即使是一种语言的胜任程序员也应该知道循环。奇怪的是,尽管存在所有差异,但在我看到的 R 讨论中,“通常有比循环更好的方法”这一主题很常见,就像 Stata 用户经常不得不被告知不要循环观察一样。
    猜你喜欢
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 2017-01-27
    • 2019-07-09
    • 2022-11-17
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多