В процессе выполнения чего-то более сложного я обнаружил следующее: если я использую do.call для преобразования числового вектора в список, я получаю другое значение из применяемой функции, и я не уверен, почему.
x <- rnorm(30)
median(x) # -0.01192347
# does not match:
do.call("median",as.list(x)) # -1.912244
Почему?
Примечание: я пытаюсь запускать различные функции, используя вектор имен функций. Это работает с do.call, но только если я получаю правильный вывод от do.call.
Спасибо за любые предложения.
do.call(median,list(x = x))
вернет ожидаемое значение. - person joran   schedule 16.07.2018as.list
разбивает вектор на список отдельных элементов, и поэтомуdo.call()
просто захватывает первый элемент для передачиmedian
. - person joran   schedule 16.07.2018