Я пытаюсь написать функцию, которая приводит атомный вектор к классу другого вектора, но он работает не очень хорошо ...
convertClass <- function(from, to)
{
# this is really ugly and fails in some cases
eval(parse(text = paste0("as.", class(to), "(", deparse(dput(from)), ")")))
}
convertClass(c("1", "0"), c(FALSE)) # FAILS, desired output is c(TRUE, FALSE)
convertClass(c("1", "0"), c(1L))
convertClass(c("1", "0"), c(1.5))
convertClass(c("1", "0"), c("XYZ"))
convertClass(c("1", "0"), factor("A"))
Есть ли более элегантное и действительно функциональное решение?