"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"
2 つの列 (と"year"
) を持つデータ フレームを作成し、大統領が就任した年ごとに行を作成したいと考えています。from
したがって、「 」から「 」までの毎年の規則的なシーケンスを作成する必要があります"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
1 人の大統領について拡張するために使用できることはわかっていますがdata.frame(name = "Bill Clinton", year = seq(1993, 2001))
、大統領ごとに反復する方法がわかりません。
どうすればいいですか?私はこれを知っているべきだと感じていますが、私は空白を描いています。
更新 1
OK、両方の解決策を試しましたが、エラーが発生しました:
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