R: вычитание двух кадров данных, за исключением некоторых столбцов - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть два кадра данных, включая данные о доходах для различных типов акций. Я хочу вычесть кадры данных, но не вычитая три первых столбца в кадрах данных (год, квартал, группа). Другими словами, я хочу, чтобы вычитались только два последних столбца, которые включают в себя результаты.

Ниже приведен мой текущий синтаксис. В первых двух строках я создаю новые фреймы данных, которые вычитаются позже в строке 3. Затем в конце я объединяю их в новый фрейм данных, содержащий как вычитаемые, так и высокие и низкие значения возврата.

BMH <- subset(Ret_BM, BM_gr=="H")
BML <- subset (Ret_BM, BM_gr == "L")
BM_HML <- BMH - BML  #This is wrong since it subtracts year, quarter and group column as well.

plot_data <- join_all(list(BMH, BML, BM_HML), by = c("year_ret", "Q"))

1 Ответ

0 голосов
/ 14 апреля 2020

Если вы хотите сохранить переменные в виде года, квартала и группы, вы можете сделать:

cbind(BMH[ ,1:3], BMH[,-c(1:3)] - BML[,-c(1:3)])

и сохранить преобразовать его снова во фрейм данных с as.data.frame()

...