Сделать фреймы данных
df1 = read.table(text="Standard_Deviation Var1 Var2 Var3 Intercept
10 4 5 9 1
10 12 7 11 1
10 25 9 3 1
10 12 8 1 1", header = TRUE)
df2 = read.table(text="names coefficients
Intercept -1.25
Var1 0.08
Var2 1.08
Var3 -0.04", header = TRUE)
Вы можете обработать таким способом.
out = matrix(0, nrow = length(df1$Standard_Deviation), ncol = NCOL(df1) - 1)
for (i in 2:NCOL(df1)){
j = which(df2$names == names(df1)[i])
out[,i-1] = df1[,1] * df1[,i] * df2[j,2]
}
colnames(out) = paste0(names(df1)[-1], "_decomp")