You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:sample_n()与slice_sample()在map()中使用的不一致问题

解决slice_sample()在map()中替代sample_n()的参数问题

问题根源

sample_n()和slice_sample()的参数传递逻辑存在差异:

  • sample_n()的参数顺序为(tbl, n),在map(c(1,2,3), sample_n, tbl = mtcars)中,map会自动将向量中的数值作为第二个位置参数传给n,与指定的tbl=mtcars匹配,因此能正常运行。
  • slice_sample()的参数顺序为(.data, n),如果直接写map(c(1,2,3), slice_sample, .data = mtcars),map会把向量数值作为第一个位置参数传给.data,和你显式指定的.data=mtcars冲突,且未传递n参数,导致报错提示“n必须显式命名”。

两种可行解决方法

方法1:使用匿名函数(直观易懂)

通过匿名函数明确将map遍历的数值传给slice_sample()的n参数:

map(c(1, 2, 3), ~slice_sample(mtcars, n = .x))

方法2:显式指定n参数(利用purrr占位符)

在map中通过.占位符,将遍历的数值直接绑定到slice_sample()的n参数:

map(c(1, 2, 3), slice_sample, .data = mtcars, n = .)

内容的提问来源于stack exchange,提问作者Grasshopper_NZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:50:21