首页 > 解决方案 > 输入 `var` 必须是向量,而不是 `formula` 对象。[案例_何时; 变异问题]

问题描述

以前有人遇到过这个问题吗?我正在处理一个庞大的数据集,下面的数据只是一个示例。我无法通过创建一个虚拟小标题来重现该问题。

> df
# A tibble: 5 x 2
  D_INDDTO   D_UDDTO   
  <date>     <date>    
1 2000-05-12 2000-05-12
2 2000-05-12 2000-05-12
3 2000-05-12 2000-05-12
4 2000-05-12 2000-05-12
5 2000-05-15 2000-05-22


> df%>%mutate(var=case_when(D_INDDTO==D_UDDTO)~"X")

Error: Problem with `mutate()` input `var`.
x Input `var` must be a vector, not a `formula` object.
i Input `var` is `case_when(D_INDDTO == D_UDDTO) ~ "X"`.
Run `rlang::last_error()` to see where the error occurred.


> rlang::last_error()
<error/dplyr_error>
Problem with `mutate()` input `var`.
x Input `var` must be a vector, not a `formula` object.
i Input `var` is `case_when(D_INDDTO == D_UDDTO) ~ "X"`.
Backtrace:
  9. dplyr::mutate(., var = case_when(D_INDDTO == D_UDDTO) ~ "X")
 11. dplyr:::mutate_cols(.data, ...)
 12. base::tryCatch(...)
 13. base:::tryCatchList(expr, classes, parentenv, handlers)
 14. base:::tryCatchOne(expr, names, parentenv, handlers[[1L]])
 15. value[[3L]](cond)
 16. dplyr:::stop_mutate_not_vector(index = i, dots = dots, result = e$result)
 17. dplyr:::stop_dplyr(...)
Run `rlang::last_trace()` to see the full context.
> 

标签: r

解决方案


() 有问题。将“)”移到 D_UDDTO 之后)

你想要这个,我想:

df%>%mutate(var=case_when(D_INDDTO==D_UDDTO~"X"))

推荐阅读