使另一个变量依赖于另一个变量的值
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"))
我正在尝试创建一个依赖于另一个变量值的新变量。
这是我的数据的样子。
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"))