r - 将 dplyr slice_sample 函数转换为基础 R

标签 r dplyr sampling

只是一个简单的问题:如何翻译 dplyr 函数 slice_sample到基地R?这是一个玩具数据集:

y <- rnorm(20)
x <- rnorm(20)
z <- rep(1:4, 5)
w <- rep(1:5, each=4)
dd <- data.frame(id=z,cluster=w,x=x,y=y)
然后我使用 slice_sample随机抽取18个案例:
dd %>% slice_sample(n = 18) %>%
  arrange(cluster)
如何在不使用任何包的情况下将上面的 dplyr 代码转换为基础 R?非常感谢!

最佳答案

像这样的东西?

a <- dd[sample(nrow(dd), 18), ]  
b <- a[order(a$cluster), ]

> head(b)
  id cluster            x           y
1  1       1  1.173261588 -0.32704781
2  2       1 -0.008782128  0.40472078
4  4       1  0.635944243 -0.16056411
3  3       1  0.774128998 -0.16587688
5  1       2  0.018583883  0.01382323
6  2       2  2.571984650  0.99070283

关于r - 将 dplyr slice_sample 函数转换为基础 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65334139/

相关文章:

r - 提取带点传递的数据框的名称

python - 自举二项式分布

r - 使用 "fread",如何从 csv 中删除注释行?

r - 为 R 下载 RGoogleDocs(失败)

r - 将时间输入打印为 r 中的单词

r - 根据列中两行之间的距离选择因素

r - 使用 group_by 和 mutate 根据多个条件添加新列时出现意外的 '='

r - dplyr::funs() 软弃用 - 更新以返回变量名称

r - 如何从 R 中变量的每个级别中采样相同数量的单位?

r - R中的条件随机样本