子样本a df在管道R中多次
我有一个50行的df。我想模拟它,就像我只有5行那样,但我想做很多次。我知道我可以分开做,然后把它们绑在一起,但那太愚蠢了。希望有一个命令的方法。我在想一些子样本a df在管道R中多次,r,dplyr,subset,tidyverse,R,Dplyr,Subset,Tidyverse,我有一个50行的df。我想模拟它,就像我只有5行那样,但我想做很多次。我知道我可以分开做,然后把它们绑在一起,但那太愚蠢了。希望有一个命令的方法。我在想一些map()或do{}的东西,但目前我对它们不太熟悉 如果可能的话,我希望保持tidyverse语法,因为%%>%%管道将继续 # make df df <- data.frame(sample=c(1:50), y = sample(1:100, 50, replace=T) ) # sample
map()
或do{}
的东西,但目前我对它们不太熟悉
如果可能的话,我希望保持tidyverse语法,因为%%>%%
管道将继续
# make df
df <- data.frame(sample=c(1:50),
y = sample(1:100, 50, replace=T) )
# sample df
df %>%
sample_n(5) %>%
mutate(simulation = 1)
# so this does what I want once, but I want to repeat this, say, 20 times.
# desired output:
sample y simulation
1 34 4 1
2 7 1 1
3 26 59 1
4 41 56 1
5 44 82 1
6 25 9 2
7 40 11 2
8 13 39 2
9 6 56 2
10 24 80 3
11 36 41 3
12 9 2 3
13 11 56 3
14 1 36 3
15 25 8 3
# and so on to 20 simulations.
#制作df
df%
样本n(5)%>%
变异(模拟=1)
#这是我想要的,但我想重复,比如说,20次。
#期望输出:
样本y模拟
1 34 4 1
2 7 1 1
3 26 59 1
4 41 56 1
5 44 82 1
6 25 9 2
7 40 11 2
8 13 39 2
9 6 56 2
10 24 80 3
11 36 41 3
12 9 2 3
13 11 56 3
14 1 36 3
15 25 8 3
#以此类推,进行20次模拟。
谢谢 replicate(…,simplify=FALSE)
将快速执行您需要的操作,然后您可以稍后绑定它
库(dplyr)
绑定行(复制(3,样本n(df,5),simplify=FALSE),
.id=“模拟”)
#模拟样本y
# 1 1 12 3
# 2 1 42 22
# 3 1 14 50
# 4 1 3 6
# 5 1 45 46
# 6 2 2 9
# 7 2 30 18
# 8 2 24 66
# 9 2 50 62
# 10 2 21 96
# 11 3 3 6
# 12 3 33 47
# 13 3 25 12
# 14 3 32 96
# 15 3 20 4
或完全在tidyverse内:
purrr::map\u dfr(1:3,~sample\n(df,5),.id=“模拟”)
类似这样的东西
库(tidymodels)
#>--附加软件包--------------------------------------------tidymodels 0.1.0--
#>v扫帚0.5.6 v配方0.1.12
#>v刻度盘0.0.6 v R采样0.0.7
#>v dplyr 1.0.0 v TIBLE 3.0.1
#>v ggplot2 3.3.1 v调谐0.1.0
#>v推断0.5.1 v工作流0.1.1
#>v防风草0.1.1 v标尺0.0.6
#>v purrr 0.3.4
#>--冲突---------------------------------------------tidymodels_Conflicts()--
#>x purrr::discard()遮罩比例::discard()
#>x dplyr::filter()屏蔽stats::filter()
#>x dplyr::lag()屏蔽stats::lag()
#>x ggplot2::margin()屏蔽拨号::margin()
#>x配方::步骤()遮罩统计::步骤()
df%
指定(公式=y~样本)%>%
假设(null=“独立”)%>%
生成(reps=100,type=“permute”)%%>%
切片头(n=5)
#>#A tible:500 x 3
#>#组:复制[100]
#>y样本复制
#>
#> 1 63 1 1
#> 2 53 2 1
#> 3 57 3 1
#> 4 44 4 1
#> 5 82 5 1
#> 6 92 1 2
#> 7 83 2 2
#> 8 89 3 2
#> 9 17 4 2
#> 10 35 5 2
#> # ... 还有490行
由(v0.3.0)创建于2020-06-16有使用管道进行模拟分析的软件包你尝试过推断软件包吗?我想补充一点是很酷的,置换不应该用于测试独立性以外的任何东西谢谢-我喜欢这个版本,但我对整个整洁的版本有一些问题,因为我也需要它的管道。比如,`df%>%map\u-dfr(1:2,~sample\n(,5),.id=“simulation”)`除了不起作用之外。有什么想法吗?是的:
df%>%replicate(3,simplify=FALSE)%>%map\u-dfr(~sample\n(,5),.id=“simulation”)