这个功能在做什么?复制

时间:2018-01-19 16:49:59

标签: r replication

var keystone = require('keystone');
var config = require('../config/config');
var Types = keystone.Field.Types;

var Stock = new keystone.List('Stock', {
  map: { name: 'label' },
  autokey: { path: 'slug', from: 'label country', unique: true },
  defaultSort: '-slug'
});

Stock.add(
      'Stock',
      { label: { type: String, required: true, initial: true }},
      { country: { type: Types.Select, options: config.models.selectCountry, required: true, initial: true }},

      // de
      { stockValue: { label: 'DAX' , type: Types.Number , dependsOn: { country:'de'} }  },

      // // uk
      { stockValue: { label: 'FTSE', type: Types.Number , dependsOn: { country:'en'} } },

      // // fr
      { stockValue: { label: 'CAC 40', type: Types.Number , dependsOn: { country:'fr'} } },

    );
嘿,有人可以帮助我吗?这个功能在做什么?第一行是设置函数的变量吗?然后这个“复制”是做什么的?谢谢!

2 个答案:

答案 0 :(得分:0)

此公式会复制您的数据。假设我们有10个观测数据集。为了得到当前数据集的其他类似数据集,您可以通过引入数据集的随机抽样来复制它。

您可以查看维基百科页面 statistical replication如果你更好奇。

让我们采用一个简单的数据框:

df <- data.frame(x = 1:10, y = 1:10)

df
    x  y
1   1  1
2   2  2
3   3  3
4   4  4
5   5  5
6   6  6
7   7  7
8   8  8
9   9  9
10 10 10

如果我们想对此进行随机抽样,我们可以使用函数rep_sample_n,其中包含2个参数tbl, size,还有另外2个可选参数replace = FALSE, reps = 1

以下是我们从数据中随机选择4个列的示例。

rep_sample_n(df, 4)
# A tibble: 4 x 3
# Groups:   replicate [1]
  replicate     x     y
      <int> <int> <int>
1         1     1     1
2         1     3     3
3         1     4     4
4         1    10    10

现在,如果我们想从10个观测数据集中随机抽取15个观测值,它将引发错误。目前replace = FALSE参数不允许这样做,因为每次选择一个样本行时,它都会从池中删除,以便下一个样本被采用。在上面的例子中,它选择了第一个观察,然后它去选择第二个(因为我们要求4个),它只剩下2到10个,它选择了第3个,然后是第4个,然后是第10个等等。如果我们允许replace = TRUE,它将每次从完整数据集中选择一个观察值。

注意在这个例子中,第五次观察被选中两次。 replace = FALSE

不会发生这种情况
rep_sample_n(df, 4, replace = TRUE)
# A tibble: 4 x 3
# Groups:   replicate [1]
  replicate     x     y
      <int> <int> <int>
1         1     5     5
2         1     3     3
3         1     2     2
4         1     5     5 

最后也是最重要的是,我们有reps参数,这是该函数的基础,实际上。它允许您多次随机采样数据集,然后将所有这些样本组合在一起。

下面,我们通过在样本中选择其中4个来对10个观测值的原始数据集进行采样,然后我们将其复制5次,因此我们有5个不同的样本数据帧,每个观察到4个观测值,这些观测值已合并为一个20个观测值数据帧,但每个唯一的5个数据帧都使用复制#进行标记。复制列将指出哪4个观察值与哪个复制数据帧有关。

rep_sample_n(df, 4, reps = 5)
# A tibble: 20 x 3
# Groups:   replicate [5]
   replicate     x     y
       <int> <int> <int>
 1         1     8     8
 2         1     4     4
 3         1     3     3
 4         1     1     1
 5         2     4     4
 6         2     5     5
 7         2     8     8
 8         2     3     3
 9         3     6     6
10         3     1     1
11         3     3     3
12         3     2     2
13         4     5     5
14         4     7     7
15         4    10    10
16         4     3     3
17         5     7     7
18         5    10    10
19         5     3     3
20         5     9     9 

我希望这提供了一些清晰度

答案 1 :(得分:0)

此函数将数据框作为输入(以及多个输入首选项)。它从表中随机抽取size行,有{或1}}输入设置的替换或不替换。它重复随机抽样replace次。

然后,它将所有样本绑定到一个数据框中,添加一个名为&#34;复制&#34;的新列。表明每行产生的重复采样。

最后,它&#34;团体&#34;生成的表格,使用reps为将来的分组操作做好准备。

关于特定功能的一般问题,例如&#34;这是什么&#34;复制&#34;在做什么?&#34; ,你应该查看功能的帮助页面:输入dplyr?replicate来实现目标。它包括功能的描述和如何使用它的示例。如果您阅读说明,运行示例,并且仍然感到困惑,请随时回过头来回答一个特定问题和示例,说明您对此感到困惑。

同样,对于&#34;第一行是设置函数的变量吗?&#34; help("replicate")的参数是函数的输入。如果您有关于R的基本问题&#34;功能如何运作&#34;,请查看An Introduction to RR Tag Wiki中的其他来源。