首页 > 解决方案 > 向数据框添加新列。创建正确功能的问题。第二个输入参数未被识别为变量

问题描述

已经谢谢你帮助我了。

add_empty_column <- function(a,b) {
  a$b <-0
  return(a)
}

dataframe1$newcolumn <- 0 正在创建一个名为 newcolumn 的新列(处处为 0)

如果我将上述函数与 add_empty_column(dataframe1,newcolumn) 一起使用,为什么这不起作用

已经感谢您的回复,现在挣扎了几个小时......

标签: rfunction

解决方案


一个使用rlang并且dplyr可能是这样的选项(我从@AllanCameron 获取数据):

library(dplyr)
#Data
df <- data.frame(Start = c(5, 15, 22), End = c(10, 21, 38))
#Function
create.colum <- function(x,y)
{
  x %>% mutate(!!rlang::enquo(y):=0) -> x
  return(x)
}
#Apply
create.colum(df,variable)

输出:

  Start End variable
1     5  10        0
2    15  21        0
3    22  38        0

或者如果你想直接创建新变量,你可以使用这个(学分@AllanCameron):

#Code 2
df <- df %>% mutate(variable=0)

输出:

  Start End variable
1     5  10        0
2    15  21        0
3    22  38        0

推荐阅读