Если я правильно понял ваш вопрос, у вас могут быть проблемы со структурой, с которыми do.call
может помочь. Я также немного переопределил функцию, чтобы учесть наименование:
Start <- data.frame("Number" = 2,"Square" = 4, "Cube" = 8)
Number <- c(3,5)
Определите свою функцию:
SquareCube <- function(x){ list(Number=x,Square=x^2,Cube=x^3) }
Затем создайте фрейм данных с желаемыми конечными результатами:
> rbind(Start, data.frame( do.call(cbind, SquareCube(Number)) ))
Number Square Cube
1 2 4 8
2 3 9 27
3 5 25 125
Вы также можете создать функцию-обертку и просто передать ей данные Start
и исходный список Number
, который вы хотите обработать, что даст фрейм данных:
> makeResults <- function(a, b) { rbind(a, data.frame(do.call(cbind,SquareCube(b)))) }
> makeResults(Start, Number)
Number Square Cube
1 2 4 8
2 3 9 27
3 5 25 125