我有一個包含30個變量的數據集。其中之一是一個指示變量(0或1),我想減去那些行的標籤爲1的行的平均值(類似於居中,但取某些行的平均值而不是整列)。使用summarise_each減去某些行的平均值
Col2 Col3 Col4 label
400 322 345 1
131 345 809 1
565 676 311 0
121 645 777 0
322 534 263 0
545 222 111 0
對於上述數據集,我想爲Col2:Col4
執行以下操作:
x(i,j)-x'(,j)
其中x(i,j)
代表的細胞,和x'(,j)
代表行的在列的平均值爲哪些label=1
。對於e.g,爲[3,1]
應該
(565-mean(400,131))= 299.5
的第2列的預期輸出:
Col2
134.5
-134.5
299.5
-144.5
56.5
279.5
我一直在嘗試使用summarise_each
命令,但沒有成功到現在。我給的命令是
try<- group_by(data,lbl) %>% select(c(4,13:26)) %>% summarise_each(funs((.)-(mean(data[data$lbl==1,])))
但這產生NA
,我真的不知道我要去哪裏錯了(我敢肯定,這在summarise_each
命令,其中我不能圖瞭解如何正確使用funs()
)
任何幫助表示讚賞。謝謝!
請閱讀有關的信息[如何問一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出一個[可重現的例子](http:// s tackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610)。這會讓其他人更容易幫助你。 – Jaap
@ProcrastinatusMaximus我編輯了這個問題,我希望這可以讓它更清晰。謝謝! –
你想要列的平均值,但沒有值'標籤== 1'? –