我想将一个序数变量(0-2)转换为二分变量,其中0表示无权利,1表示部分权利,2表示完全权利。
原始的序数变量是按国家和年份(国家-年份单位)编码的。
我想创建一个二分变量(我们称之为Improvement),捕捉每个国家-年份的年度正向变化。因此,当从0变为1(或从0变为2,或从1变为2)时,我希望该年和该国的值为1。否则为0。
下面我给出了我的数据示例。”RIGHTS”是原始的序数变量。”MY DICHOTOMOUS”变量是我想在R中计算的。我该如何操作?
COUNTRY YEAR RIGHTS MY DICHOTOMOUSA 1990 0 0A 1991 0 0A 1992 0 0A 1993 1 1 A 1994 0 0B 1990 1 1 B 1991 1 0 B 1992 1 0B 1993 1 0B 1994 1 0
请注意,原始数据也可能出现相反的情况,即可能出现负向变化。对于这个二分变量,我不希望对负向变化进行编码。
回答:
我们可以使用diff
df1$dichotomous <- +c(FALSE,diff(df1$RIGHTS)==1) df1$dichotomous #[1] 0 0 0 1 0 1 0 0 0 0