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

R语言如何创建含3个参数的函数 其中1个参数指定待相乘的2个数据框列

R实现指定列相乘新增列函数

功能要求

  • 接收3个输入参数:
    • 第一个参数:输入的待处理dataframe对象
    • 第二个参数:长度为2的数值向量,指定需要做乘积运算的两列的位置
    • 第三个参数:字符串类型,用于设置新增乘积列的列名
  • 函数返回值为添加了新列的原dataframe,新列值为指定两列的逐行乘积,列名使用传入的指定参数值

前置初始化代码

已提前执行的测试数据生成代码如下:

set.seed(666)
produce <- data.frame(apples = rnorm(100), bananas = rnorm(100), carrots = rnorm(100))

函数实现代码

multiply_two_cols <- function(input_df, target_cols, new_col_name) {
  # 参数合法性校验
  if (!is.data.frame(input_df)) stop("第一个参数必须为dataframe类型")
  if (length(target_cols) != 2 || !is.numeric(target_cols)) stop("第二个参数必须是长度为2的数值向量")
  if (min(target_cols) < 1 || max(target_cols) > ncol(input_df)) stop("指定的列位置不在数据框的列范围内")
  
  # 计算乘积并新增列
  input_df[[new_col_name]] <- input_df[[target_cols[1]]] * input_df[[target_cols[2]]]
  return(input_df)
}

调用测试示例

我们将示例数据produce的第1列(apples)和第2列(bananas)相乘,新增列命名为apple_banana_prod,调用代码如下:

# 调用自定义函数
result_df <- multiply_two_cols(produce, c(1,2), "apple_banana_prod")
# 查看前6行结果验证
head(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:15:04