Возможно, не лучший вариант, но вы можете попробовать это:
observed <- matrix(1:20, nrow = 5) # if as.matrix() if necessary
expected <- matrix(21:40, nrow = 5)
matrix(paste(as.character(observed), " (", as.character(expected), ")", sep = ""),
nrow = nrow(observed))
или
`dim<-`(sprintf("%d (%d)", observed, expected), dim(observed)) # thank you @markus for pointing that one
# output
[,1] [,2] [,3] [,4]
[1,] "1 (21)" "6 (26)" "11 (31)" "16 (36)"
[2,] "2 (22)" "7 (27)" "12 (32)" "17 (37)"
[3,] "3 (23)" "8 (28)" "13 (33)" "18 (38)"
[4,] "4 (24)" "9 (29)" "14 (34)" "19 (39)"
[5,] "5 (25)" "10 (30)" "15 (35)" "20 (40)"