2013-12-18 3 views
2

Я должен отсутствовать что-то очевидное:список Обрушение MPFR объектов в один вектор MPFR

library(Rmpfr) 

list.mpfr <- list(mpfr(10, 128), mpfr(20, 128)) # I'd like to turn this into mpfr(c(10, 20), 128) 
test <- c(list.mpfr, recursive=TRUE) # Doesn't work -- should it? 
identical(test, list.mpfr) # False -- test is a list of mpfr1 and no longer a list of mpfr 

## I'd expect c.mpfr(..., recursive=TRUE) to do the equivalent of c(list(1:5, 8:10), recursive=TRUE) 
getAnywhere(c.mpfr) 

У меня есть функция, которая возвращает MPFR длины один. Я использую mapply(..., simplify=FALSE) для создания чего-то похожего на list.mpfr в приведенном выше примере. Я хотел бы объединить объекты length-1 mpfr в один объект mpfr (так, например, я могу позвонить which.max).

ответ

2

Найдено решение:

library(Rmpfr) 
list.mpfr <- list(mpfr(10, 128), mpfr(20, 128)) 
desired <- new("mpfr", unlist(list.mpfr)) 
identical(desired, mpfr(c(10, 20), 128)) # True