1

データフレームを考えると、

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

複数のダミー変数のセット内の各変数の平均を計算したいと考えています。

tapplyaggregateまたは複数の行で関数を使用して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)

4

2 に答える 2