我有MMA搏动的数据集。
当前结构为
Fighter 1, Fighter 2, Winner
x y x
x y x
x y x
x y x
x y x
我的问题是战斗机1 =获胜者,因此我的模型将被训练为战斗机1始终获胜,这是一个问题。
我需要能够随机将Fighter 1和Fighter 2换成一半的数据集,以使获胜者平均分配。
理想情况下,我会拥有
Fighter 1, Fighter 2, Winner
x y x
y x x
x y y
y x x
x y y
有没有一种方法可以在不影响行顺序的情况下跨列随机分配?
答案 0 :(得分:1)
我假设您的x
和y
是任意的,只是占位符。我将进一步假设您需要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
内部。
答案 1 :(得分:-1)
我还发现此代码有效
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
integrity="sha384-
UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/"
crossorigin="anonymous">
<div id="boxIcon2">
<i class="fas fa-car"></i>
</div>