Я хотел бы иметь возможность создать новую переменную на основе определенных значений в двух существующих переменных. Мой фрейм данных выглядит так:
structure(list(id = structure(c(1L, 2L, 3L, NA, NA, NA), .Label = c("blue",
"red", "yellow"), class = "factor"), value = c(-4.3, -2.5, -3.6,
NA, NA, NA)), .Names = c("id", "value"), row.names = c(NA, -6L
), class = "data.frame")
Я хотел бы создать новый столбец, содержащий только те значения, которые относятся к синему (например, 4.2). Все остальные значения приведут к NA, например:
structure(list(id = structure(c(1L, 2L, 3L, NA, NA, NA), .Label = c("blue",
"red", "yellow"), class = "factor"), value = c(-4.3, -2.5, -3.6,
NA, NA, NA), newvalue = c(-4.3, NA, NA, NA, NA, NA)), .Names = c("id",
"value", "newvalue"), row.names = c(NA, -6L), class = "data.frame")
Я попробовал следующее:
b1 <- dat$id=="blue"
dat$newvalue <- dat$value[b1]
Но это заполнило каждую ячейку в новом столбце одним и тем же значением (-4,3).