Skip to contents

Function asColumnList()

This function converts a matrix into a list of its columns. This is useful when you want to loop through the columns of a matrix m with lapply(). You could also loop through the columns with apply(m, MARGINS = 2). However, the usage of lapply() should be preferred to the usage of apply(), as demonstrated in the following example:

# Define and show a very simple matrix
(m <- matrix(1:6, nrow = 2))
#>      [,1] [,2] [,3]
#> [1,]    1    3    5
#> [2,]    2    4    6

# Define functions that return/count the values above a threshold.
# These functions are to be applied to each column of the matrix 
get_above <- function(x, threshold) x[x > threshold]
count_above <- function(x, threshold) sum(x > threshold)

With the first function, the two approaches return identical results:

# Approach 1: loop through columns using asColumnList() and lapply()
result_1 <- lapply(kwb.utils::asColumnList(m), get_above, 3)
str(result_1)
#> List of 3
#>  $ : int(0) 
#>  $ : int 4
#>  $ : int [1:2] 5 6

# Approach 2: loop through columns using apply()
result_2 <- apply(m, 2, get_above, 3)
str(result_2)
#> List of 3
#>  $ : int(0) 
#>  $ : int 4
#>  $ : int [1:2] 5 6

However, with the second function, the two approaches return differing results:

# Approach 1: loop through columns using asColumnList() and lapply()
result_1 <- lapply(kwb.utils::asColumnList(m), count_above, 3)
str(result_1)
#> List of 3
#>  $ : int 0
#>  $ : int 1
#>  $ : int 2

# Approach 2: loop through columns using apply()
result_2 <- apply(m, 2, count_above, 3)
str(result_2)
#>  int [1:3] 0 1 2

The first approach using lapply() returns a list, whereas the second approach using apply() returns a vector. The first approach should be preferred because the user can trust that the result will always be a list, independent of the function that is called within the loop. The preferred function lapply() requires an object that it can loop through and this is what asColumnList() provides!

Function asRowList()

This function converts a matrix into a list of its rows. See asColumnList() for an explanation of when this may be useful.

Function convertCsvFile()

Function csvTextToDataFrame()

Function hsChrToNum()

Function hsStringToDate()

Function hsStringToDouble()

Function hsMatrixToListForm()

Function naToLastNonNa()

Function startsToEnds()

Function startsToRanges()

Function toFactor()

Function toFormula()

Function toInches()

Function toKeysAndValues()

Function toLookupClass()

Function toLookupList()

Function toLookupTable()

Function toNamedList()

Function toPositiveIndices()

Function underscoreToPercent()