重新排列数据框中的行序列

标签 r rows shuffle

我有一个包含 9000 行和 6 列的数据框。我想让行的顺序随机,即某种洗牌以生成具有相同数据但行随机顺序的另一个数据帧。谁能告诉我如何在 R 中做到这一点?

谢谢

最佳答案

如果您想对行进行采样(但保持)相同的顺序,那么您可以只对行进行采样。

df <- data.frame(x=1:8, y=1:8, z=1:8)
df[sample(1:nrow(df)),]

这将产生

  x y z
2 2 2 2
3 3 3 3
4 4 4 4
6 6 6 6
5 5 5 5
8 8 8 8
7 7 7 7
1 1 1 1

如果您应该对每一行单独进行采样,那么您可以执行类似的操作

lapply(df, function(x) { sample(x)})

结果

$x
[1] 3 1 4 6 5 2 8 7

$y
[1] 2 5 6 3 4 8 7 1

$z
[1] 6 1 8 3 2 7 4 5

关于重新排列数据框中的行序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32620534/

相关文章:

R 2.14字节编译——性能提升了多少

r - 从github存储库安装开发版本R包时如何指定lib目录

r - 在ggplot2中定义最小点大小-geom_point

sql - 创建一个 View ,其中 PostgreSQL 显示特定字段的前 100 行,然后移动到下一个

r - 使用 frame 参数绘制从 ggplot 到 plotly 的图

mysql - 在mysql中对具有2集数的行进行排序

Excel Listobject 表 ListRows.count 与 range.rows.count

c# - 洗牌堆栈<T>

c++ - 多次改组 vector 后读取访问冲突

java - (Java)我不知道如何用所需的计数器控制循环填充数组