【问题标题】:Stata factor variables may not contain negative values in categorical variable统计因子变量可能不包含分类变量中的负值
【发布时间】:2021-05-02 04:37:28
【问题描述】:

我想计算一个变量的比例,但是总是出现“因子变量可能不包含负值”的警告。我检查标签列表后,它包含以下内容:

标签列表w38_E1a:

w38_E1a:
-99 Refused
-98 Don't know
1 Yes
2 No

如何删除这个 -99 和 -98 数据?

谢谢。

【问题讨论】:

  • 计算比例、删除数据和因子变量可能是三个不同的问题。您尝试的语法是什么?

标签: stata


【解决方案1】:

假设数据被编码为数字类型,那么我会简单地将它们重新编码为正数,因为如果它们是分类的,那么它们的符号无关紧要,

recode w38_E1a (-99 = 99) (-98 = 98)

【讨论】:

  • 没问题。如果它解决了您的问题,请将此标记为答案。
【解决方案2】:

我认为你应该删除那些异常值,你可以使用drop if w38_E1a<0

【讨论】:

    【解决方案3】:

    似乎 -99 和 -98 旨在编码缺失值,因此这里没有异常值。如果是这种情况,您应该使用标签 w38_E1a 将变量的值 -99 和 -98 重新编码为缺失。要查找其值标有特定值标签的变量,您可以使用 SSC 中的 -findname-。

    cap which findname
    if _rc ssc install findname // install -findname if necessary
    
    findname, vallabelname(w38_E1a)
    foreach v of varlist `r(varlist)' {     
       recode `v' (-99 = .a ) (-98 = .b)
    }
    label def w38_E1a .a "Refused" .b "Don't know" -99 "" -98 "", modify
    

    【讨论】:

      【解决方案4】:

      我找不到回复https://stackoverflow.com/users/15742435/jesse-kaczmarskihttps://stackoverflow.com/users/15819003/bing 的方法,而且因为我没有“赢得”足够的声誉,我无法直接评论他们的回答。但是,应该注意他们的建议可能会以错误的方式发挥作用:

      1. puput0808 只向我们展示了 值标签 的内容,但是,您正在尝试重新编码 变量如果具有相同名称的 变量 具有值 -99 或 -98,则 em> 具有相同的名称或丢弃情况。但是,如果变量名称与值标签的名称不同怎么办?可能是 (a) 没有连接到此值标签的变量(在这种情况下会出现错误消息)或 (b) 有多个连接到该值标签的变量,并且只有一个具有该值标签的名称(在这种情况下,问题仍然存在)。
      2. puput0808 向我们显示了 -99 和 -98 的标签,表明这些值旨在被视为缺失。在这种情况下,将值重新编码为正数肯定是错误的。

      【讨论】:

        猜你喜欢
        • 2021-11-19
        • 1970-01-01
        • 2021-06-11
        • 2015-07-04
        • 2022-08-06
        • 2014-01-27
        • 2021-04-21
        • 1970-01-01
        相关资源
        最近更新 更多