簡體   English   中英

dplyr評估:select()與mutate()

[英]dplyr evaluation: select() vs. mutate()

誰能解釋為什么與select()一起使用的dplyr方法不能與mutate()

最小的工作示例:

data <- as.tibble(cbind(c(1,2,3,4),c(5,6,7,8)))
func <- function(data, var){
  data %>% select(!!var)
}
func2 <- function(data, var){
  data %>% mutate(!!var/10)
}

在此MWE中, func(data,quo(V1))起作用。 func2(data, quo(V1))不會,它會發出Error in var/10 : non-numeric argument to binary operator 也就是說,允許select()正確地將“ var”評估為“ V1”的相同策略,不允許mutate()做同樣的事情。

有什么原因,可以解決嗎?

僅需要很小的修正,指定新列的名稱並添加方括號。

func2 <- function(data, var){ data %>% mutate(V3 = (!!var)/10) }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM