一串长dplyr管道的末端是
mutate(n = if_else(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3, n))
这给出了这个错误
Error in mutate_impl(.data, dots) : Evaluation error: `false` must be type double, not integer.
Run Code Online (Sandbox Code Playgroud)
如果我改为这两个中的任何一个,那就会消失
mutate(n = ifelse(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3, n))
mutate(n = if_else(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3L, n))
我认为做一个简单的可重复娱乐是最简单的,所以我做了你在下面看到的,但我不能再得到错误了.知道发生了什么事吗?为什么不在ifelse哪里工作,如果我改变3到3L if_else,为什么if_else工作?我理解L 强制 3是一个整数,这是正确的吗?
library(tidyverse)
df <- tribble(
~name, ~fruit, ~qty,
"Bob", "apple", 10,
"Bill", "apple", …Run Code Online (Sandbox Code Playgroud)