在R中的列表对象中的setnames()

3qpi33ja  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(90)

我下面有一个列表对象,我需要为每个列表对象分配一个特定的名称,例如如果对象位于my.list中的1st位置,则为my.listDF.1,如果对象位于10th位置,则为DF.10。非常感谢。

df1 <- data_frame(ID = paste0(LETTERS[1],1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples", valueDEF = seq(0.1,0.4,0.1), valueDEF2 = seq(0.1,0.4,0.1) )
    df2 <- data_frame(ID = paste0(LETTERS[1],5:8), valueB = seq(0.1,0.4,0.1),  Category= "Apples2")
    df3 <- data_frame(ID = paste0(LETTERS[1],9:12), valueC = seq(0.1,0.4,0.1),  Category= "Apples3")
    
    my.list  <- list(df1, df2, df3);my.list 
    
    for(i in 1:length(my.list)){
      my.list[[i]] <-  paste("DF", i, sep = ".")
      #names(my.list) <- setNames(my.list , c('list1', 'list2', 'list3')) ### in forloop 
    }

预期答案

names(my.list) 
DF.1, DF.2, DF.3
3b6akqbq

3b6akqbq1#

我们可以将paste(创建名称)和setNames(将名称分配给列表)组合在一起:

names(my.list) <- paste0("DF.", 1:length(my.list))

names(my.list)
[1] "DF.1" "DF.2" "DF.3"

相关问题