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

R语言调用purrr包cross函数出现过滤函数逻辑值报错如何解决

报错产生原因

  • purrr::cross()的入参规则为:第一个参数.l接收包含所有需要做笛卡尔积的向量/元素的单列表对象,不支持将多个待计算的向量作为独立参数直接传入。
  • 你编写的cross(c(1,2,3), c(4,5,6))代码中,第一个参数c(1,2,3)被识别为.l的传入值,第二个参数c(4,5,6)则被匹配到了函数的第二个参数.filter的位置。.filter参数要求传入一个返回单个逻辑值的过滤函数,传入数值向量会触发类型不匹配,你收到的报错就是这个原因导致的:

Error: The filter function must return a single logical 'TRUE' or 'FALSE', not NULL

正确调用方式

基础调用(返回列表格式笛卡尔积)

library(purrr)
# 将所有待计算笛卡尔积的向量放在同一个list中传入即可
cross(list(c(1,2,3), c(4,5,6)))

进阶调用(直接返回数据框格式)

如果需要更易读的数据框格式结果,可以直接使用cross_df()函数:

cross_df(list(
  col1 = c(1,2,3),
  col2 = c(4,5,6)
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:36:03