7

私は dplyr を使用していますが、グループ間の差を 1 行で計算できるかどうか疑問に思っています。以下の小さな例のように、タスクはグループ A とグループ B の標準化された「セント」変数の差を計算することです。

library(dplyr)
# creating a small data.frame
GROUP <- rep(c("A","B"),each=10)
NUMBE <- rnorm(20,50,10)
datf <- data.frame(GROUP,NUMBE)

datf2 <- datf %.% group_by(GROUP) %.% mutate(cent = (NUMBE - mean(NUMBE))/sd(NUMBE))

gA <- datf2 %.% ungroup() %.% filter(GROUP == "A") %.% select(cent)
gB <- datf2 %.% ungroup() %.% filter(GROUP == "B") %.% select(cent)

gA - gB

もちろん、これはさまざまなオブジェクトを作成しても問題ありませんが、このタスクを実行するための「組み込み」の方法はありますか? 以下のファンタジーコードが機能しないようなものはありますか?

datf2 %.% summarize(filter(GROUP == "A",select(cent)) - filter(GROUP == "B",select(cent)))

ありがとうございました!

4

2 に答える 2

4

インスピレーションをありがとう。私はさらにこのソリューションを開発しました:

mutate(datf2,diffence = filter(datf2, GROUP == "A")$cent - filter(datf2, GROUP == "B")$cent)

これにより、結果が data.frame の列として追加されます。

于 2014-03-24T18:45:37.917 に答える