【问题标题】:Define a dummy variable based on binary code in R在R中基于二进制代码定义一个虚拟变量
【发布时间】:2016-05-09 13:34:16
【问题描述】:

以下来自医院的患者数据示例。

YEAR <- sample(1980:1995,15, replace=T)
Pat_ID <- sample(1:100,15)
sex <- c(1,0,1,0,1,0,0,1,0,0,0,0,1,0,0)

df1 <- data.frame(Pat_ID,YEAR,sex)

我想引入一个虚拟变量$PAIR_IDENTIFIER,每次出现新的sex==1 时都会采用一个新值。问题是sex 变量没有常量模式。

您有时会看到后续的 1 出现在 ith+2 位置,然后出现在 ith+3 位置等。

所以$PAIR_IDENTIFIER &lt;- c(1,1,2,2,3,3,3,4,4,4,4,4 .....)

【问题讨论】:

    标签: r dummy-variable


    【解决方案1】:

    你可以通过简单地使用cumsum来做到这一点,

    df1$PAIR_IDENTIFIER <- cumsum(df1$sex)
    df1
    #   Pat_ID YEAR sex PAIR_IDENTIFIER
    #1      54 1991   1               1
    #2     100 1992   0               1
    #3       6 1995   1               2
    #4      99 1994   0               2
    #5      42 1988   1               3
    #6      65 1990   0               3
    #7      53 1994   0               3
    #8      96 1987   1               4
    

    【讨论】:

    • 太棒了,这么简单!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多