基于R中的二进制代码定义一个虚拟变量
Define a dummy variable based on binary code in R
以医院的以下患者数据为例。
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 <- c(1,1,2,2,3,3,3,4,4,4,4,4 .....)
您只需使用 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
以医院的以下患者数据为例。
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 <- c(1,1,2,2,3,3,3,4,4,4,4,4 .....)
您只需使用 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