这个功能在做什么?复制
what is this function doing? replication
rep_sample_n <- function(tbl, size, replace = FALSE, reps = 1)
{
rep_tbl = replicate(reps, tbl[sample(1:nrow(tbl), size, replace = replace),
], simplify = FALSE) %>%
bind_rows() %>%
mutate(replicate = rep(1:reps, each = size)) %>%
select(replicate, everything()) %>%
group_by(replicate)
return(rep_tbl)
}
嘿,有人可以帮我吗?这个函数在做什么?第一行是设置函数的变量吗?然后这个 "replicate" 在做什么?谢谢!
此公式复制了您的数据。假设我们有一个包含 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
,它有两个参数 tbl, size
,还有另外两个可选参数 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
,它每次都会从完整数据集中选择一个观察值。
注意在这个例子中,第 5 个观察值被选择了两次。 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
我希望这提供了一些清晰度
此函数将数据框作为输入(以及多个输入首选项)。它从 table 中随机抽取 size
行样本,有或没有由 replace
输入设置的替换。它重复随机抽样 reps
次。
然后,它将所有样本绑定到一个数据帧中,添加一个名为 "replicate" 的新列,指示产生每一行的采样重复。
最后,它 "groups" 结果 table,为将来使用 dplyr
进行分组操作做准备。
关于特定函数的一般问题,例如 “这个 "replicate" 在做什么?”,您应该查看函数的帮助页面:键入 ?replicate
或 help("replicate")
到达那里。它包括功能描述和使用示例。如果您阅读了说明、运行 示例,但仍然感到困惑,请随时返回一个具体的问题和示例来说明您对什么感到困惑。
类似地,对于 "Is the first line setting the variables of the function?",function()
的参数是函数的输入。如果您有关于 R 的基本问题,例如 "How do functions work",请查看 An Introduction to R, or one of the other sources in the R Tag Wiki。
rep_sample_n <- function(tbl, size, replace = FALSE, reps = 1)
{
rep_tbl = replicate(reps, tbl[sample(1:nrow(tbl), size, replace = replace),
], simplify = FALSE) %>%
bind_rows() %>%
mutate(replicate = rep(1:reps, each = size)) %>%
select(replicate, everything()) %>%
group_by(replicate)
return(rep_tbl)
}
嘿,有人可以帮我吗?这个函数在做什么?第一行是设置函数的变量吗?然后这个 "replicate" 在做什么?谢谢!
此公式复制了您的数据。假设我们有一个包含 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
,它有两个参数 tbl, size
,还有另外两个可选参数 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
,它每次都会从完整数据集中选择一个观察值。
注意在这个例子中,第 5 个观察值被选择了两次。 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
我希望这提供了一些清晰度
此函数将数据框作为输入(以及多个输入首选项)。它从 table 中随机抽取 size
行样本,有或没有由 replace
输入设置的替换。它重复随机抽样 reps
次。
然后,它将所有样本绑定到一个数据帧中,添加一个名为 "replicate" 的新列,指示产生每一行的采样重复。
最后,它 "groups" 结果 table,为将来使用 dplyr
进行分组操作做准备。
关于特定函数的一般问题,例如 “这个 "replicate" 在做什么?”,您应该查看函数的帮助页面:键入 ?replicate
或 help("replicate")
到达那里。它包括功能描述和使用示例。如果您阅读了说明、运行 示例,但仍然感到困惑,请随时返回一个具体的问题和示例来说明您对什么感到困惑。
类似地,对于 "Is the first line setting the variables of the function?",function()
的参数是函数的输入。如果您有关于 R 的基本问题,例如 "How do functions work",请查看 An Introduction to R, or one of the other sources in the R Tag Wiki。