★ R plot.design ★

 281 R plot.design  sb812109  2002/12/20 (金) 22:48
  282 Re: R plot.design  青木繁伸  2002/12/20 (金) 23:38
   285 Re^2: R plot.design  sb812109  2002/12/21 (土) 10:25
    289 Re^3: R plot.design  青木繁伸  2002/12/21 (土) 14:01
     290 Re^4: R plot.design  青木繁伸  2002/12/21 (土) 14:05
      292 Re^5: R plot.design  sb812109  2002/12/22 (日) 00:24


281. R plot.design  sb812109  2002/12/20 (金) 22:48
Sにplot.designと云う,ある変数の水準ごとにある関数の結果
(例えば,平均値)をグラフ化する関数があります。

Rでは,ver.1.6.1でも,まだサポートされていませんが,どな
たかplot.designと同じ働きをする関数がどこにあるか,あるいは
自らプログラムを書いている方をご存知ではないでしょうか。

     [このページのトップへ]


282. Re: R plot.design  青木繁伸  2002/12/20 (金) 23:38
S を使えないので,どんな関数なのか分からないのですが,

g <- c(rep(1,10), rep(2,10), rep(3,10))
x <- rnorm(30)
boxplot(x ~ g)

で描かれるボックスプロットのような感じですか。
ボックスプロットそのものでなくて中央値だけとか平均値だけとか標準偏差だけとか?
テストデータと描画例が見られるところを示していただければ,書けるかも?

     [このページのトップへ]


285. Re^2: R plot.design  sb812109  2002/12/21 (土) 10:25
早速の回答有難うございます。描画例を探しましたが,見つかりませんでした。

目的変数:y (連続量)
説明変数:x1(カテゴリー,水準3)
     x2(カテゴリー,水準2)

最後の2行で,水準毎の平均値が求まります。欲しいのは,説明変数の水準毎の
平均値をグラフ化したものです。次の様なアルゴリズムになるかと思います。

(1)縦軸にyをとる
(2)横軸にx1,x2をとる
(3)x1の水準毎の平均値をplotし,線で結ぶ(y軸に平行な垂線になります)
(4)x2に関しても,同じ,,,

単変量解析の結果を1枚のグラフで鳥瞰できますので,非常に重宝しています。
Rでplot.designが使えれば,私の場合,全てRで済んでしまうのですが,この
関数が無いだけに,この部分は,S-plusを使っています(まあ,全てS-plus
を使って書けば良い話では,あるのですが)。Rのファンとしては,苛立たしい
ところです。

x1 <- c(rep(1,10), rep(2,10), rep(3,10))
x2 <- c(rep(1,5), rep(2,25))
y <- rnorm(30)

data <- data.frame(y,x1,x2)
attach(data)

by(y,x1, FUN=mean)
by(y,x2, FUN=mean)

     [このページのトップへ]


289. Re^3: R plot.design  青木繁伸  2002/12/21 (土) 14:01
こんなのでいいですか?試してみてください。
説明は次へ
plot.design <- function(data, FUN=mean)
{
    nv <- ncol(data)
    for (i in 2:nv) {
        r <- by(data[,1], data[,i], FUN)
        if (i == 2) {
            min.y <- min(r)
            max.y <- max(r)
        }
        else {
            min.y <- min(min.y, r)
            max.y <- max(max.y, r)
        }
    }
    min.y <- min.y-(max.y-min.y)*0.1
    plot(c(0.5,nv-0.5), c(min.y, max.y), type="n", xlab="", xaxt="n", ylab=variable.names(data)[1])
    for (i in 2:nv) {
        r <- by(data[,1], data[,i], FUN)    
        n <- length(r)
        x <- rep(i-1, n)
        lines(x, r, type="o")
        text(i-1, min.y, variable.names(data)[i])
        for(j in 1:n) {
            text(i-1, r[j], paste("c", j, sep=""), pos=4, offset=0.5)
        }
    }
}

x1 <- c(rep(1,10), rep(2,10), rep(3,10))
x2 <- c(rep(1,5), rep(2,25))
y <- rnorm(30)

data <- data.frame(y,x1,x2)
attach(data)

plot.design(data)

     [このページのトップへ]


290. Re^4: R plot.design  青木繁伸  2002/12/21 (土) 14:05
> plot.design <- function(data, FUN=mean)

第一引数は,データフレーム(行列)で,一列目が目的変数,二列目以降が説明変数となるように構成する。
第二引数は関数名。デフォールトは mean(省略可能)

wish list
使用した関数名をプロットに描く方法が分からなかった。

     [このページのトップへ]


292. Re^5: R plot.design  sb812109  2002/12/22 (日) 00:24
まさに求めていたものは,これです。

これで,Rに完全移行できます。有難う御座いました。
早速,使わせて戴きます。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 022 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る