裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

sd(データフレーム) は廃止-その2

2011年11月24日 | ブログラミング

なぜ廃止されたのかな?ストイックな理由なんだろうか。

現在の sd は

> sd
function (x, na.rm = FALSE)
{
    if (is.matrix(x)) {
        msg <- "sd(<matrix>) is deprecated.\n Use apply(*, 2, sd) instead."
        warning(paste(msg, collapse = ""), call. = FALSE, domain = NA)
        apply(x, 2, sd, na.rm = na.rm)
    }
    else if (is.vector(x))
        sqrt(var(x, na.rm = na.rm))
    else if (is.data.frame(x)) {
        msg <- "sd(<data.frame>) is deprecated.\n Use sapply(*, sd) instead."
        warning(paste(msg, collapse = ""), call. = FALSE, domain = NA)
        sapply(x, sd, na.rm = na.rm)
    }
    else sqrt(var(as.vector(x), na.rm = na.rm))
}
<bytecode: 0x1083677b8>
<environment: namespace:stats>

なんだから,warning だけを除いて,従来通りにすればよいのではないか?

sd
function (x, na.rm = FALSE)
{
    if (is.matrix(x))
        apply(x, 2, sd, na.rm = na.rm)
    else if (is.vector(x))
        sqrt(var(x, na.rm = na.rm))
    else if (is.data.frame(x))
        sapply(x, sd, na.rm = na.rm)
    else sqrt(var(as.vector(x), na.rm = na.rm))
}

とするだけで,どこがわるいのだろうか???

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

sd(データフレーム) は廃止

2011年11月24日 | ブログラミング

sd 関数は,もはや,行列やデータフレームを対象としない。

> class(d)
[1] "matrix"
> sd(d)
[1] 1 1
 警告メッセージ:
sd() is deprecated.
 Use apply(*, 2, sd) instead.
> sd(data.frame(d))
X1 X2
 1  1
 警告メッセージ:
sd() is deprecated.
 Use sapply(*, sd) instead.

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村