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
相关产品推荐
相关产品推荐

