R Mutate在自定义函数中的行为不符合预期(变体)

R Mutate在自定义函数中的行为不符合预期(变体),r,tidyverse,function-call,R,Tidyverse,Function Call,我的问题与Ariel Polani和Tyler Law的问题相似,但就我而言,!!sym()解决方案或解决方案不起作用。这是我的密码: library(cansim) library(tidyverse) add_series <- function(vector_num,first_date,end_date,tseries) { tmp <- get_cansim_vector(vector_num,first_date,end_date) tseries <- m

我的问题与Ariel Polani和Tyler Law的问题相似,但就我而言,
!!sym()
解决方案或
mutate()
中的代码>解决方案不起作用。这是我的密码:

library(cansim)
library(tidyverse)
add_series <- function(vector_num,first_date,end_date,tseries) {
  tmp <- get_cansim_vector(vector_num,first_date,end_date)
  tseries <- mutate(tseries,!!sym(vector_num)=tmp$VALUE)
  return(tseries)
}
first_date <- as.Date("2011-01-01",format="%Y-%m-%d")
end_date <- as.Date("2019-06-01",format="%Y-%m-%d")
tseries <- data.frame(REF_DATE=seq(first_date,end_date,by="month"))
tseries <- add_series("v42170711",first_date,end_date,tseries)
库(cansim)
图书馆(tidyverse)

添加_series如果我们在字符串上使用
赋值
,请使用
:=
,这里我们不需要
sym

library(dplyr)
tseries <- tseries %>%
                 mutate(!!vector_num :=tmp$VALUE)
库(dplyr)
tseries%
变异(!!向量数量:=tmp$值)
-完整代码

add_series <- function(vector_num,first_date,end_date,tseries) {
  tmp <- get_cansim_vector(vector_num,first_date,end_date)
  tseries %>%
       mutate(!! vector_num :=tmp$VALUE)

}

add_series("v42170711",first_date,end_date,tseries) %>%
     head
#    REF_DATE v42170711
#1 2011-01-01   1566882
#2 2011-02-01   1580492
#3 2011-03-01   1566209
#4 2011-04-01   1594096
#5 2011-05-01   1600677
#6 2011-06-01   1613907
添加_系列%
头
#参考日期v42170711
#1 2011-01-01   1566882
#2 2011-02-01   1580492
#3 2011-03-01   1566209
#4 2011-04-01   1594096
#5 2011-05-01   1600677
#6 2011-06-01   1613907

谢谢您的帮助。它适用于一个系列,但当我在第二个系列v806086中再次尝试时,它会重写。添加_系列(“v806086”,第一个_日期,结束日期,tseries)%>%head为什么会这样?@PhilSmith,因为您没有分配到位<代码>序列