Расширить диапазоны, определенные столбцами «от» и «до»

У меня есть фрейм данных, содержащий"name" президентов США, годы, когда они начинаются и заканчиваются в должности, ("from" а также"to" колонны). Вот образец:

name           from  to
Bill Clinton   1993 2001
George W. Bush 2001 2009
Barack Obama   2009 2012

... и выход изdput:

dput(tail(presidents, 3))
structure(list(name = c("Bill Clinton", "George W. Bush", "Barack Obama"
), from = c(1993, 2001, 2009), to = c(2001, 2009, 2012)), .Names = c("name", 
"from", "to"), row.names = 42:44, class = "data.frame")

Я хочу создать фрейм данных с двумя столбцами ("name" а также"year"), с рядом за каждый год, что президент был в офисе. Таким образом, мне нужно создать регулярную последовательность с каждым годом из & quot;from& quot ;, чтобы"to", Вот мой ожидаемый результат:

name           year
Bill Clinton   1993
Bill Clinton   1994
...
Bill Clinton   2000
Bill Clinton   2001
George W. Bush 2001
George W. Bush 2002
... 
George W. Bush 2008
George W. Bush 2009
Barack Obama   2009
Barack Obama   2010
Barack Obama   2011
Barack Obama   2012

Я знаю, что я могу использоватьdata.frame(name = "Bill Clinton", year = seq(1993, 2001)) расширить вещи для одного президента, но я не могу понять, как повторять для каждого президента.

Как мне это сделать? Я чувствую, что должен это знать, но я рисую пробел.

Update 1

ОК, я попробовал оба решения, и я получаю сообщение об ошибке:

foo<-structure(list(name = c("Grover Cleveland", "Benjamin Harrison", "Grover Cleveland"), from = c(1885, 1889, 1893), to = c(1889, 1893, 1897)), .Names = c("name", "from", "to"), row.names = 22:24, class = "data.frame")
ddply(foo, "name", summarise, year = seq(from, to))
Error in seq.default(from, to) : 'from' must be of length 1

Ответы на вопрос(4)

Ваш ответ на вопрос