グラフのlegendの位置の調整について

グラフの凡例は当然描きたいグラフに応じてその”内容”を文字列で設定するわけですが、その凡例の「文字幅」に応じて表示する位置を調整しないといけないわけです。このやり方を最近理解したのでメモ。肝は「legend関数の返り値の$rect$wが凡例の幅になってる」ということ。
以下コード&描画。

#適当なデータ作成
x <- seq.Date(Sys.Date(), Sys.Date() + 9, by = "days") 
y <- cumsum(rnorm(10))              
#データの範囲設定
x.lim <- c(min(x), max(x))
y.lim <- c(min(y) - 1, max(y) + 1)
#描画
par(xaxt="n")
plot(x, y, xlim = x.lim, ylim = y.lim, pch = 1)
par(xaxt = "s")
axis.Date(1, at = x, format = "%Y/%m/%d")
size <- legend(0, 0, "データ", pch = 1, plot = FALSE)
legend(x.lim[2] - size$rect$w, y.lim[2], "データ", pch = 1)