I have a df of 10 rows and would like to find the absolute difference abs() between all pairs of rows as a matrix.
id rate
1 33.1
2 12.4
3 15.3
4 16
5 23.1
6 14.5
7 26.6
8 18.6
9 17
10 25.2
I have a df of 10 rows and would like to find the absolute difference abs() between all pairs of rows as a matrix.
id rate
1 33.1
2 12.4
3 15.3
4 16
5 23.1
6 14.5
7 26.6
8 18.6
9 17
10 25.2
Is this what you are looking for?
``` r
DF <- data.frame(rate = c(33.1, 12.4, 15.3, 16, 23.1, 14.5, 26.6, 18.6, 17, 25.2))
VecList <- vector(mode = "list", length = 9)
for ( i in 1:9) {
VecList[[i]] <- c(rep(NA, i), DF[1:(10 - i), "rate"])
}
VecList
#> [[1]]
#> [1] NA 33.1 12.4 15.3 16.0 23.1 14.5 26.6 18.6 17.0
#>
#> [[2]]
#> [1] NA NA 33.1 12.4 15.3 16.0 23.1 14.5 26.6 18.6
#>
#> [[3]]
#> [1] NA NA NA 33.1 12.4 15.3 16.0 23.1 14.5 26.6
#>
#> [[4]]
#> [1] NA NA NA NA 33.1 12.4 15.3 16.0 23.1 14.5
#>
#> [[5]]
#> [1] NA NA NA NA NA 33.1 12.4 15.3 16.0 23.1
#>
#> [[6]]
#> [1] NA NA NA NA NA NA 33.1 12.4 15.3 16.0
#>
#> [[7]]
#> [1] NA NA NA NA NA NA NA 33.1 12.4 15.3
#>
#> [[8]]
#> [1] NA NA NA NA NA NA NA NA 33.1 12.4
#>
#> [[9]]
#> [1] NA NA NA NA NA NA NA NA NA 33.1
sapply(VecList, FUN = function(x) abs(x - DF$rate))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> [1,] NA NA NA NA NA NA NA NA NA
#> [2,] 20.7 NA NA NA NA NA NA NA NA
#> [3,] 2.9 17.8 NA NA NA NA NA NA NA
#> [4,] 0.7 3.6 17.1 NA NA NA NA NA NA
#> [5,] 7.1 7.8 10.7 10.0 NA NA NA NA NA
#> [6,] 8.6 1.5 0.8 2.1 18.6 NA NA NA NA
#> [7,] 12.1 3.5 10.6 11.3 14.2 6.5 NA NA NA
#> [8,] 8.0 4.1 4.5 2.6 3.3 6.2 14.5 NA NA
#> [9,] 1.6 9.6 2.5 6.1 1.0 1.7 4.6 16.1 NA
#> [10,] 8.2 6.6 1.4 10.7 2.1 9.2 9.9 12.8 7.9
Created on 2021-03-06 by the reprex package (v0.3.0)
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.