私はかなり複雑であると確信しています。そして2つの因子変数(ここでは:sex
とunemp
):私は、p(v3
からv1
こちら)変数を持つデータフレームを持ってサマリーテーブルを作成するプロセスの簡素化
> head(df)
sex unemp v1 v2 v3
1 0 0 2 4 4
2 0 0 2 1 1
3 1 0 3 3 5
4 1 1 2 3 5
5 0 0 1 2 5
6 1 0 3 5 4
私は今(すなわちコンピューティングの中央値を変更し、意味したいと思いますし、その後再配置しますその結果得られたデータフレームは、男性または女性のための(次のようになりサマリー表)ような方法で自分のデータ):
library(plyr)
## generate data
set.seed(1)
df <- data.frame(sex=rbinom(100, 1, 0.5),
unemp=rbinom(100, 1, 0.2),
v1=sample(1:5, 100, replace=TRUE),
v2=sample(1:5, 100, replace=TRUE),
v3=sample(1:5, 100, replace=TRUE)
)
head(df)
## compute mean and median for all variables by sex and unemp
df.mean <- ddply(df, .(unemp, sex), .fun=colMeans, na.rm=TRUE)
df.mean
df.median <- ddply(df, .(unemp, sex), .fun=function(x)apply(x,2,median, na.rm=TRUE))
df.median
## rearrange summary table
df.res.men <- cbind(t(subset(df.median, sex==0 & unemp==1)),
t(subset(df.median, sex==0 & unemp==0)),
t(subset(df.mean, sex==0 & unemp==1)),
t(subset(df.mean, sex==0 & unemp==0)))
df.res.men <- df.res.men[-c(1:2),]
colnames(df.res.men) <- c("median.unemp.1", "median.unemp.0",
"mean.unemp.1", "mean.unemp.0")
df.res.men
:ここ
> df.res.men
median.unemp.1 median.unemp.0 mean.unemp.1 mean.unemp.0
v1 2.0 2.0 2.666667 2.391304
v2 2.0 3.5 2.500000 3.369565
v3 4.5 3.0 4.166667 2.956522
は完全なコードです10
ありがとうございました!私はそれが私が探していたものだと思います。 –
@Ramnath - 'reshape'と' reshape2'の間の機能の変化をキャッチしてくれてありがとう。誰かを混乱させるのではなく、私は自分の答えを削除しました。また、あなたの+1。 –
@ Josh。私はあなたの答えを保つべきだと思います。それは非常にエレガントです。あなたは、機能が 'reshape'からのもので、' reshape2'から削除されたことを明確にするノートを追加することができます。 – Ramnath