Rename list items Rename list items r r

Rename list items


Note that you have a list. Therefore, you do not have colnames but names. You can edit them like this:

l <- list(col1 = c(123123, 12123, 123123), col1 =  c(123123, 12123, 123123))l # $col1# [1] 123123  12123 123123# # $col1# [1] 123123  12123 123123names(l)# [1] "col1" "col1"names(l) <- c("2014", "2015")l# $`2014`# [1] 123123  12123 123123# # $`2015`# [1] 123123  12123 123123

To only edit certain entries in the list, specify an index:

names(l)[1] <- "new_name"l# $`new_name`# [1] 123123  12123 123123# # $`2015`# [1] 123123  12123 123123

If you'd like to know more about the different data types in R, I can recommend Hadley Wickham's summary.


If you want to use the list name instead of the index, this works.

#Reproduce example listmylist <- list(Col1 = c(32824, 35646, 34650, 29328, 27376, 28548, 35363, 34740, 49181, 57960, 55550, 50626), Col1 =  c(52610, 55085, 58576, 51300, 50968, 58104, 56585, 38273, 54216, 59043, 67487, 58067), Col1 =  c(59142, 68593, 77510, 73434, 83545, 83483, 79635, 69269, 85703, 73080))mylist$Col1 [1] 32824 35646 34650 29328 27376 28548 35363 34740 49181 57960 55550 50626$Col1 [1] 52610 55085 58576 51300 50968 58104 56585 38273 54216 59043 67487 58067$Col1 [1] 59142 68593 77510 73434 83545 83483 79635 69269 85703 73080#Change names in mylist from Col1 to 2014, 2015, 2016names(mylist) <- c("2014", "2015", "2016")mylist$`2014` [1] 32824 35646 34650 29328 27376 28548 35363 34740 49181 57960 55550 50626$`2015` [1] 52610 55085 58576 51300 50968 58104 56585 38273 54216 59043 67487 58067$`2016` [1] 59142 68593 77510 73434 83545 83483 79635 69269 85703 73080

You can also change names in mylist from list name Col1 all to the same new.name.

names(mylist)[names(mylist) == "Col1"] <- "new.name"mylist$new.name [1] 32824 35646 34650 29328 27376 28548 35363 34740 49181 57960 55550 50626$new.name [1] 52610 55085 58576 51300 50968 58104 56585 38273 54216 59043 67487 58067$new.name [1] 59142 68593 77510 73434 83545 83483 79635 69269 85703 73080


Was looking for the same, the following may work as well.

l <- list(col1 = c(123123, 12123, 123123), col1 =  c(123123, 12123, 123123));lnames(l) <- paste("l", seq_along(l), sep = "");lnames(l) <- paste( c(2004:2005), sep = "");l