如何在 R 中使用 SUBSET FUNCTION 创建变量

How to create a variable with SUBSET FUNCTION in R

我正在尝试根据其他变量的条件在数据框中创建一个新变量:

SUBSET01$poverty_t <- 0
#Never poor
SUBSET01$poverty_t[SUBSET01$yr_interview=="2018" & SUBSET01$yr_interview=="2019" & SUBSET01$Poverty=="0"] <- 0
#Poor in both periods
SUBSET01$poverty_t[SUBSET01$yr_interview=="2018" & SUBSET01$yr_interview=="2019" & SUBSET01$Poverty=="1"] <- 2
#Poor in period 1
SUBSET01$poverty_t[SUBSET01$yr_interview=="2018"& SUBSET01$Poverty=="1"] <- -1
#Poor in period 2
SUBSET01$poverty_t[SUBSET01$yr_interview=="2019" & SUBSET01$Poverty=="1"] <- 1

SUBSET01$poverty_t<-factor(SUBSET01$poverty_t)
summary(SUBSET01$poverty_t)
  -1    0    1 
7254 1014 6047 

前两个不工作(poverty_t=0,贫困=2)。是不是子集函数对3个条件都不起作用?

我假设您有一个 data.frame 和一个名为 yr_interview 的变量,并且该列的每一行都有一个值,例如

id  Poverty  yr_interview
1   1        2018
1   0        2019
2   0        2018
    ...      ...
k   0        2019

您编写的代码不起作用,因为 yr_interview 永远不可能同时是 2019 年和 2018 年。一个解决方案是重塑您的数据,以便有一个 2018 年贫困状况变量和一个变量2019 年的贫困状况,例如

id    pov_18    pov_19
1     1         0
2     0         0 
3     1         1
...   ...       ... 
k     1         0