我有一个数据框(df1),长这样。
f1 f2 f3 f4 f5
d1 1 0 1 1 1
d2 1 0 0 1 0
d3 0 0 0 1 1
d4 0 1 0 0 1
d1至d4列是行名称,f1至f5行是列名称。
使用sample(df1)函数,可以得到一个计算1的新数据框。因此,整个数据框中的1的数量保持不变,但每一行或每一列中的1的数量并未保持不变。
是否可以按行或列进行随机化?
我想要对df1按列逐列进行随机化,即每一列中1的数量保持不变,每一列至少需要发生一次更改。例如,我可以得到一个类似于以下内容的随机化的df2:(注意到每一列中1的数量保持不变,但每一行中1的数量不同)
f1 f2 f3 f4 f5
d1 1 0 0 0 1
d2 0 1 0 1 1
d3 1 0 0 1 1
d4 0 0 1 1 0
同样地,我也想对df1进行逐行随机化处理,即每行中的1的数量保持不变,并且需要更改每一行(但是更改的条目数可能不同)。例如,随机化后的 df3 可能如下所示: f1 f2 f3 f4 f5
d1 0 1 1 1 1 <- two entries are different
d2 0 0 1 0 1 <- four entries are different
d3 1 0 0 0 1 <- two entries are different
d4 0 0 1 0 1 <- two entries are different
顺便说一下,非常感谢Gavin Simpson、Joris Meys和Chase对我之前有关随机化两列的问题所作的帮助。