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

R语言自定义索引识别函数传入列名参数返回logical(0)问题

问题根源

R的$运算符在索引数据框列时,会将$后的标识符当做固定的列名字面量解析,不会识别为你定义的函数参数变量。你在函数内写的dataframe$column_name,实际是在查找数据框中名为column_name的列,而非读取column_name参数传入的"face"值,你的deck3不存在该列,因此返回空逻辑值logical(0)。

修复方案

以下是两种常用的基础R实现方式:

  • 方法1:使用支持动态字符串索引的双括号[[]]
index_identifier <- function(dataframe, text_to_be_changed, column_name){
  text_to_be_changed == dataframe[[column_name]]
}
  • 方法2:使用[行,列]格式索引
index_identifier <- function(dataframe, text_to_be_changed, column_name){
  text_to_be_changed == dataframe[, column_name]
}

修改完成后调用index_identifier(deck3,"ace","face")即可返回预期的布尔向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:45:04