【发布时间】:2026-01-20 07:05:02
【问题描述】:
我有一个数据框
ID1 ID2 ID3 feat1 feat2
1 a x class1 class2
1 a y class1 class2
1 b x class2 class1
1 b y class2 class1
1 b z class2 class1
1 c x class1 class1
2 a x class1 class2
2 a y class1 class2
2 b x class2 class1
2 b y class2 class1
2 b z class2 class1
2 c x class1 class1
按 ID1、ID2 和 ID3 分组
我想在组级别之间(即在 a、b 和 c 之间)随机重新调整 feat1 和 feat2 值(class1 或 class2),而不进行替换。 因此,随机输出可能是:
ID1 ID2 ID3 feat1 feat2
1 a x class2 class1
1 a y class2 class1
1 b x class1 class1
1 b y class1 class1
1 b z class1 class1
1 c x class1 class2
2 a x class2 class1
2 a y class2 class1
2 b x class1 class1
2 b y class1 class1
2 b z class1 class1
2 c x class1 class2
在这种随机洗牌中,'a' 从 'b' 中获取特征值; 'b' 取自 'c' ;和'a'中的'c'
我的代码是
my_df_reshuffled = my_df %>%
group_by(ID1, ID2, ID3) %>%
slice(sample(1:n()))
但它不会在组之间打乱值,只是改变组级别的顺序,同时保持每个组的feat1和feat2值相等。
我错过了什么?
谢谢
【问题讨论】: