R语言函数使用求助:为Interest列生成翻倍值新列
解决R语言生成翻倍新列的问题
你的代码存在几个关键问题:
- 函数仅计算了列的翻倍值,但未将结果作为新列添加到原数据框中
- 最后调用的
df_col_double既不是有效函数调用,也没有定义对应的对象
下面是几种可行的实现方案:
方案1:直接生成新列(最简方式)
如果不需要单独封装函数,直接执行以下代码即可快速生成目标新列:
# 假设你的数据框名为df df$Interest_double <- df$Interest * 2
方案2:封装函数处理数据框
如果需要用函数实现,建议让函数接收整个数据框和目标列名,灵活性更强:
add_double_col <- function(data, col_name) { # 自动生成新列名(原列名后加"_double") new_col <- paste0(col_name, "_double") # 计算翻倍值并添加为数据框的新列 data[[new_col]] <- data[[col_name]] * 2 # 返回修改后的数据框 return(data) } # 调用函数,传入数据框和目标列名 df <- add_double_col(df, "Interest")
方案3:适配你原思路的函数调整
如果想保留你最初的函数逻辑,只需补全调用步骤并将结果赋值为新列:
# 重命名函数,避免和R内置的col函数冲突 double_col <- function(col) { return(col * 2) } # 调用函数并将结果赋值给数据框的新列 df$Interest_double <- double_col(df$Interest)
执行上述任意方案后,你的数据框中都会新增一列,存储Interest列所有值翻倍后的结果。
内容的提问来源于stack exchange,提问作者Kelvin Tan
相关产品推荐
相关产品推荐

