Отредактировано, чтобы отразить столбец, который не должен быть разделен:
library(dplyr)
df1 <- data.frame(id = c("patient1", "patient2", "patient3", "patient4", "patient5"), replicate(5,sample(1:50,5,rep=TRUE)))
df2 <- data.frame(id = c("patient1", "patient2", "patient3", "patient4", "patient5"), replicate(5,sample(1:50,5,rep=TRUE)))
df3 <- data.frame(df1$id, df1[, c(2:6)] / df2[, c(2:6)])
> df1
id X1 X2 X3 X4 X5
1 patient1 15 18 5 49 47
2 patient2 13 32 13 33 21
3 patient3 20 42 32 5 25
4 patient4 32 8 26 32 18
5 patient5 48 49 13 44 13
> df2
id X1 X2 X3 X4 X5
1 patient1 48 12 6 21 25
2 patient2 18 43 1 14 13
3 patient3 10 18 37 25 13
4 patient4 37 4 47 3 28
5 patient5 9 2 50 1 13
> df3
df1.id X1 X2 X3 X4 X5
1 patient1 0.3125000 1.500000 0.8333333 2.333333 1.8800000
2 patient2 0.7222222 0.744186 13.0000000 2.357143 1.6153846
3 patient3 2.0000000 2.333333 0.8648649 0.200000 1.9230769
4 patient4 0.8648649 2.000000 0.5531915 10.666667 0.6428571
5 patient5 5.3333333 24.500000 0.2600000 44.000000 1.0000000