r - 获取要选择的元素动态长度的所有组合
问题描述
我有一个数据框:
dat <- data.frame(toys = c("bear", "car", "plane", "truck", "doll"),
price = c(1.23, 2.34, 3.45, 4.56, 5.67))
我现在想要获得一次可以选择 2、3 和 4 个玩具的所有玩具组合。
我可以手动调用该combn
函数三次,例如
combn(dat$toys, 2)
combn(dat$toys, 3)
combn(dat$toys, 4)
但是,我正在寻找一个动态解决方案,我可以理想地提供一个范围(例如c(2,4)
),因此我可以在一次调用中获得所有上述组合。在我的真实示例中,我将拥有大约 22 个玩具并且想要获得不同范围的组合(例如所有“7 到 14 元素”组合或“8 到 13”等)。
有任何想法吗?
解决方案
使用任何
Map(combn, list(dat$toys),2:4)
或者
lapply(2:4,combn,x = dat$toys)
当然你可以添加simplify=FALSE
推荐阅读
- json - 在哪里可以找到用于实体提取的精确 GOOGLE ML json 规范?
- python - 点云的视差图已关闭
- openssl - 使用 Cygwin x64 构建 LibreOffice 时找不到 openssl 标头
- boot - xorriso:boot.catalog 和 -eltorito-catalog 不起作用
- snakemake - Snakemake,使用 glob_wildcards 跳过子目录的任何方式
- sql - CS50 Pset 7 13.sql,我解决不了,嵌套sqlite3数据库
- asp.net-mvc - 如何使用不同的模型将数据传递给局部视图?
- c# - 我怎样才能使这个 xamarin 开关渲染器代码工作?
- flutter - 为父容器提供较小宽度后,OutlineButton 中的图标未居中
- python - 更新到 Spyder 4.1 后出现内核错误