R 向数据帧添加新列。创建正确函数的问题。第二个输入参数未被识别为变量

R 向数据帧添加新列。创建正确函数的问题。第二个输入参数未被识别为变量,r,function,R,Function,已经谢谢你帮我了 add_empty_column <- function(a,b) { a$b <-0 return(a) } add\u empty\u column将列名作为变量传递时,不要使用$。改为使用[ add_empty_column <- function(a,b) { a[[b]] <-0;return(a) } add\u empty\u column在将列名作为变量传递时,不要使用$,而是使用[ add_empty_column <

已经谢谢你帮我了

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

add\u empty\u column将列名作为变量传递时,不要使用
$
。改为使用
[

add_empty_column <- function(a,b) { a[[b]] <-0;return(a) }

add\u empty\u column在将列名作为变量传递时,不要使用
$
,而是使用
[

add_empty_column <- function(a,b) { a[[b]] <-0;return(a) }

add_empty_column如果希望函数按预期工作,则需要使用
deparse(替换(b))
,并使用括号运算符而不是
$
运算符:

添加空列2 15 21
#> 3    22  38
我们可以做到:

add_empty_列(df,value)
#>起止值
#> 1     5  10     0
#> 2    15  21     0
#> 3    22  38     0

如果希望函数按预期工作,则需要使用
deparse(替换(b))
,并使用括号运算符而不是
$
运算符:

添加空列2 15 21
#> 3    22  38
我们可以做到:

add_empty_列(df,value)
#>起止值
#> 1     5  10     0
#> 2    15  21     0
#> 3    22  38     0

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

或者,如果您想直接创建新变量,您可以使用(credits@AllanCameron):


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

或者,如果您想直接创建新变量,您可以使用(credits@AllanCameron):


尽管如此,如果你打算使用tidyverse,我想你会做
mutate(df,variable=0)
@AllanCameron是的,你是对的。我会用你有用的建议更新答案!!非常感谢!!!尽管如此,如果你打算使用tidyverse,我想你会做
mutate(df,variable=0)
@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
#Code 2
df <- df %>% mutate(variable=0)
  Start End variable
1     5  10        0
2    15  21        0
3    22  38        0