1
UQ
문자열이 dplyr
과 같은 방법으로 mutate
의 RHS에서 변수 이름을 만들었습니까? 나는이 MWE의 wilcox.test
일부 의견에있어 오류 메시지를 참조하십시오dplyr :: mutate unquote RHS
require(dplyr)
dfMain <- data.frame(
base = c(rep('A', 5), rep('B', 5)),
id = letters[1:10],
q0 = rnorm(10)
)
backgs <- list(
A = rnorm(13),
B = rnorm(11)
)
fun <- function(dfMain, i = 0){
pcol <- sprintf('p%i', i)
qcol <- sprintf('q%i', i)
(
dfMain %>%
group_by(id) %>%
mutate(
!!pcol := ifelse(
!is.nan(!!qcol) &
length(backgs[[base]]),
wilcox.test(
# !!(qcol) - backgs[[base]]
# object 'base' not found
# (!!qcol) - backgs[[base]]
# non-numeric argument to binary operator
(!!qcol) - backgs[[base]]
)$p.value,
NaN
)
)
)
}
dfMain <- dfMain %>% fun()
나는 전체 표현식은 찾을 수없는 이유 변수 이름뿐만 아니라 맺다하고 싶은대로 내가 !!(qcol) ...
그것을 해석 추측 base
? 나는 또한 (!!qcol)
이 문자열 자체를 반환한다는 사실을 알았으므로 놀라움없이 -
연산자가 처리 할 수 없습니다.
감사합니다. Mikko! 사실'q0' 나는이 오타를 수정합니다. 또한 qcol을 문자열로 남겨두면'(!! as.name (qcol))'이 작동한다는 것을 발견했습니다. – deeenes