r - 将 dplyr slice_sample 函数转换为基础 R
问题描述
只是一个简单的问题:如何将 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
推荐阅读
- java - 在模块解析的上下文中,“由主机系统决定”是什么意思?
- apache-spark - Apache spark 与本地 s3 集成
- javascript - 无法在反应中单击由 Material-UI 制作的 PaginationItem 链接
- django - Django - Custom Join 的 F('') 在列引用中包含单引号,导致 Postgres 认为它是字符串而不是列引用
- asp.net-core-webapi - 模型包含接口属性未提交给 Web API 中的控制器
- javascript - 在 settimeout 角度内添加延迟
- hazelcast - Hazelcast Scheduled Executor 总是在最新成员上启动任务
- kubernetes - 如何设置 istio sidecar 生命周期
- amazon-web-services - 每个 Lambda 别名的 Cloudwatch 警报
- django - 我如何在 django 模板中显示另一个网站数据