データフレームを考えると、
ID <- c("a","b","b","c","c","c","d","d","d")
dummy1 <- c(1,0,1,1,0,0,1,1,0)
dummy2 <- c(0,0,0,0,1,1,1,1,1)
dummy3 <- c(1,0,0,1,1,0,0,1,1)
df <- data.frame(ID,dummy1,dummy2,dummy3)
ID dummy1 dummy2 dummy3
1 a 1 0 1
2 b 0 0 0
3 b 1 0 0
4 c 1 0 1
5 c 0 1 1
6 c 0 1 0
7 d 1 1 0
8 d 1 1 1
9 d 0 1 1
複数のダミー変数のセット内の各変数の平均を計算したいと考えています。
tapply
、aggregate
または複数の行で関数を使用してave(x,y,mean)
、新しい変数/列を同時に作成するようなものです。残念ながら、事前にダミー変数の数はわかりません。私が知っている唯一のことは、ダミー変数が列 2 から始まるということです。私の結果は次のようになります。
ID m_dummy1 m_dummy2 m_dummy3 m_dummy5...
a 1 0 1
b 0 0 0
c 0.33 0.66 0.66
d 0.66 1 0.66
またはこのように:
ID m_dummy1 m_dummy2 m_dummy3 m_dummy5...
a ... 1 0 1
b ... 0 0 0
b ... 0 0 0
c ... 0.33 0.66 0.66
c ... 0.33 0.66 0.66
c ... 0.33 0.66 0.66
d ... 0.66 1 0.66
d ... 0.66 1 0.66
d ... 0.66 1 0.66
私のシナリオでは、1 から x までの未知の数のダミーがあるため、dummy2 のみが存在する可能性がありますが、「dummy1」と架空のダミー「dummy5」および「dummy6」が存在する可能性があります。完璧な解決策は、列 2 の後のすべての列に対して「m_dummy」列を作成できるようにすることです。したがって、dummy3 が欠落しているか、追加の dummy4 がある場合にも機能します。dummy4 <- c(1,0,0,0,0,0,0,1,0)