Я предполагаю, что ваши x
s и y
s являются произвольными и просто заполнителями.Кроме того, я предполагаю, что вам нужно, чтобы столбец Winner
оставался неизменным, вам просто нужно, чтобы победитель не всегда был в первом столбце.
Пример данных:
set.seed(42)
x <- data.frame(
F1 = sample(letters, size = 5),
F2 = sample(LETTERS, size = 5),
stringsAsFactors = FALSE
)
x$W <- x$F1
x
# F1 F2 W
# 1 x N x
# 2 z S z
# 3 g D g
# 4 t P t
# 5 o W o
Выберите несколько строк для случайного изменения:
(ind <- sample(nrow(x), size = ceiling(nrow(x)/2)))
# [1] 3 5 4
Это означает, что мы ожидаем, что строки 3-5 будут изменены.
Теперь случайные изменения:
within(x, { tmp <- F1[ind]; F1[ind] = F2[ind]; F2[ind] = tmp; rm(tmp); })
# F1 F2 W
# 1 x N x
# 2 z S z
# 3 D g g
# 4 P t t
# 5 W o o
Строки1-2 все еще показывают F1
как W
внутренний, а строки 3-5 показывают F2
как W
внутренний.