Be Careful with Characters and Matrices

If you fill a matrix cell with a character, R will convert the entire matrix into character values…so be careful = )

time <- c(1:4)
numbers <- c(1:4)
characters <- c('a', 'b', 'c', 'd')
count <- 0

df_mat <- matrix(, ncol = 3, nrow = length(time))

for(i in 1:length(time)){
  count <- count + 1
  
  df_mat[count, 1] <- time[i]
  df_mat[count, 2] <- numbers[i]
  df_mat[count, 3] <- characters[i]
  
}

df_mat
     [,1] [,2] [,3]
[1,] "1"  "1"  "a" 
[2,] "2"  "2"  "b" 
[3,] "3"  "3"  "c" 
[4,] "4"  "4"  "d" 

Notice that all cells are now characters. Characters are a huge problem if you are calculating values to place into the cells. That is, I wouldn’t be able to run code like this in a loop:

df_mat[count - 1, 2] <- df_mat[count - 1, 3] * 0.5

Instead, use numbers for everything and then change them to characters later.

time <- c(1:4)
numbers <- c(1:4)
characters <- c(1, 2, 3, 4) # here is the change
count <- 0

df_mat <- matrix(, ncol = 3, nrow = length(time))

for(i in 1:length(time)){
  count <- count + 1
  
  df_mat[count, 1] <- time[i]
  df_mat[count, 2] <- numbers[i]
  df_mat[count, 3] <- characters[i]
  
}

df_mat
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    2    2
[3,]    3    3    3
[4,]    4    4    4

Bo\(^2\)m =)