У меня есть набор данных с 30 переменными. Одна из них - индикаторная переменная (0 или 1), и я хотел бы вычесть среднее из тех строк, где метка равна 1 для определенных столбцов (что-то вроде центрирования, но с учетом значения некоторых строк вместо всего столбца).Вычитание среднего числа строк с помощью summaryise_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
, Для например, для [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 Я отредактировал вопрос, и я надеюсь, что это станет более ясным. Благодаря! –
Вы хотите, чтобы среднее из столбцов, но без значений, где 'label == 1'? –