使另一个变量依赖于另一个变量的值

make another variable dependent on the value of another variable

我正在尝试创建一个依赖于另一个变量值的新变量。

这是我的数据的样子。

 work <- read.table(header=T, text="ID incident
1   1     <NA>
2   2     2006
3   3     1997
4   4     <NA>
5   5     1994
6   6     1998
7   7     <NA>
8   9     <NA>
9  10     1988
10 11     <NA>")

这就是我想要的样子

read.table(header=T, text="ID   Incident    Incident1
1   NA      0
2   2006    0
3   1997    1
4   NA      0
5   1994    1
6   1998    0
7   NA      0
8   NA      0
9   NA      0
10  1988    1")

这意味着我想为 "incident" 创建一个新变量,将其命名为 "incident1" 如果 "incident" 的值为不到 1998 年。

这意味着 "incident" <1998 中的每个值都会给出 "incident1"=1,所有其他值都会收到零。

到目前为止我已经试过了 work$incident1[work$incident %in% <1998] <- 1 但它不起作用。

这可能是一个非常简单的问题,只是我已经很长时间没有编写任何代码(试图开始获得收益)并且有点忘记了很多。

感谢所有帮助!

将 "work" 数据集中的 factor 变量 "incident" 转换为 numeric class ("incid")。您可以通过 as.numeric(as.character(as.numeric(levels(... 来完成,然后应用条件 incid < 1998 &..

incid <- as.numeric(as.character(work$incident)

incid <- with(work, as.numeric(levels(incident))[incident])

(incid < 1998 & !is.na(incid))+0
#[1] 0 0 1 0 1 0 0 0 1 0

数据

work <- structure(list(ID = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 9L, 10L, 11L
), incident = structure(c(6L, 5L, 3L, 6L, 2L, 4L, 6L, 6L, 1L, 
6L), .Label = c("1988", "1994", "1997", "1998", "2006", "<NA>"
), class = "factor")), .Names = c("ID", "incident"), class =  
"data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10"))