R:减去两个数据框,除了一些列

R: Subtracting two dataframes except some of the columns

我有两个数据框,包括不同类型股票的股票 returns。我想减去数据帧但不减去数据帧中的前三列(年、季度、组)。换句话说,我只想减去包含 returns 的最后两列。

以下是我当前的语法。在前两行中,我创建了新的数据帧,这些数据帧稍后将在第 3 行中减去。然后在最后,我将它们合并到一个包含减去的高值和低值 returns 的新数据帧中。

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"))

如果您想将变量保留为年、季度和组,您可以这样做:

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

并使用 as.data.frame()

再次将其转换为数据框