【发布时间】:2020-10-15 13:28:46
【问题描述】:
我有一个 XY 文件,其中包含超过 40000 行唯一的浮点数。我想在这个文件上使用引导重采样。 Bootstrap 重采样的工作原理如下:它重新采样 N 个随机行(N 是输入文件的编号)并从输入文件中替换。这意味着新数据集(输出)与第一个文件具有相同的行数,并且新数据集可以多次包含某些行,并且可能根本不包含某些原始行。我尝试使用
来洗牌shuf -n N input > output
和
sort -R input | head -n N > output
,但他们似乎没有实现替换。
如果有人可以介绍一种使用 AWK 和 Shell 的方法,我们将不胜感激。
【问题讨论】:
-
您想从输入文件中获取
N随机记录,并且输出文件中的计数应该与输入文件相同? -
您能否更好地解释您的要求。完全不清楚你想做什么。我理解这一点的方式是您想从文件中提取 n 行(Q1 这些行可以包含重复吗?),将它们打乱,然后将这些 n 行替换为新订单。 (Q2这怎么可能有重复?)
-
@DigvijayS 输出行数应该和第一个文件一样。
-
@kvantour 输出的行数应该与输入相似。 Bootstrap 随机抽样并从输入文件中替换。因此,对于每次绘制,输入文件的所有行(甚至是先前为输出选择的行)都有相同的可能性被选择。换句话说,每次选择每一行时,我们都是从原始输入文件中随机选择的。输出可以有来自输入的重复行,也可以没有来自输入的任何行。我希望这可以澄清一点。
标签: bash shell random awk text-processing