Я хочу добавить константу в строки нового столбца, которые соответствуют определенному условию в другом столбце.
Мои смоделированные данные:
df <- structure(list(var1 = c("a", "b", "c", "a", "a", "a", "a", "d"),
var2 = c("b", "b", "a", "b", "b", "c", "a", "c"),
var2 = c("c", "c", "c", "c", "d", "c", "c", "a")),
.Names = c("var1", "var2", "var3"),
row.names = c(NA, 8L),
class = "data.frame")
, который выглядит так:
> df
var1 var2 var3
1 a b c
2 b b c
3 c a c
4 a b c
5 a b d
6 a c c
7 a a c
8 d c a
Теперь я хотел бы добавить newvar
, которое увеличивается на значение 1, если var1
равно a
, увеличить его еще на 1, если var2
равно b
, и увеличить его на 1, если var3
равно c
. То есть мои данные должны выглядеть так:
> df
var1 var2 var3 newvar
1 a b c 3
2 b b c 2
3 c a c 1
4 a b c 3
5 a b d 2
6 a c c 2
7 a a c 2
8 d c a 0
Я пробовал следующее, но он только заменит значения на 1, а не увеличит их на 1:
df$newvar[df$var1 == "a"] <- +1
df$newvar[df$var1 == "b"] <- +1
df$newvar[df$var1 == "c"] <- +1