Если df1, d2, df3 и df 4 имеют одинаковые значения при их объединении
вы получите df5, который будет значения df1 и размер df1
чем почему ты просто не
df5 <- df1
df5$Pred1 <- rowSums(df1)
df5$pred2 <- rowSums(df5[,1:4])
Сначала вы должны объединить все df, а затем просто создать новые столбцы pred1 и pred2
df1 <- data.frame(c1= c(1,1,2,2,4),c2 = c(2,2,3,3,5),c5 = c(3,4,4,5,6))
df2 <- data.frame(c1= c(10,1,2,2,4),c2 = c(2,2,30,3,5),c5 = c(3,4,40,5,6))
df3 <- data.frame(c1= c(15,1,2,2,4),c2 = c(22,2,3,3,5),c5 = c(3,44,4,5,6))
df4 <- data.frame(c1= c(12,1,2,2,4),c2 = c(2,23,3,3,5),c5 = c(3,4,45,5,6))
tmp <- merge(df1,df2,by= c("c1","c2","c5"),all.x = TRUE,all.y=TRUE)
tmp <- merge(tmp,df3,by= c("c1","c2","c5"),all.x = TRUE,all.y=TRUE)
tmp <- merge(tmp,df4,by= c("c1","c2","c5"),all.x = TRUE,all.y=TRUE)
tmp$pred1 = rowSums(tmp[,1:3])
tmp:
tmp
c1 c2 c5 pred1
1 1 2 3 6
2 1 2 4 7
3 1 2 44 47
4 1 23 4 28
5 2 3 4 9
....