We may need to return the object after naming it.
li_2 <- lapply(seq_along(li), function(i) {
colnames(li[[i]]) <- names(li)[i]
li[[i]]})
Or this can be done with setNames
li_2 <- lapply(names(li), function(x) setNames(li[[x]], x) )
Or we could use Map
, which is a wrapper for mapply
(that is a multivariate version of sapply
). We apply the FUN
to corresponding elements of each input.
li_2 <- Map(setNames, li, names(li))
Here, we are changing the column names of each list
element with corresponding names of the list
element. If we are using anonymous function, it would be
Map(function(x,y) setNames(x,y), li, names(li))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…