У меня есть фрейм данных:
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
y <- c(2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
df <- data.frame(x, y)
Теперь я хочу изменить значения в x, но только для 10% всех значений в x, когда y равно 2. Например,
set.seed(999)
df[sample(which(df$y == 2), round(0.1 * length(which(df$y == 2)))), ]
x y
11 11 2
14 14 2
Именно для этого случая я хочу добавить + 1000. Результат должен выглядеть следующим образом:
x y
1 1 2
2 2 2
3 3 2
4 4 0
5 5 0
6 6 0
7 7 0
8 8 0
9 9 2
10 10 2
11 1011 2
12 12 2
13 13 2
14 1014 2
15 15 2
16 16 2
17 17 2
18 18 2
19 19 2
20 20 2
Я могу отредактировать подвыборку, но я не знаю, как добавить результат в фрейм данных"DF" на аккуратном пути.Я благодарен за любую помощь!