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'} } },
);
嘿,有人可以帮助我吗?这个功能在做什么?第一行是设置函数的变量吗?然后这个“复制”是做什么的?谢谢!
答案 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 R或R Tag Wiki中的其他来源。