首页 > 解决方案 > 为列表中的每个数据框添加后缀?

问题描述

我有一个包含多个数据框的列表。我想为每个数据框的名称添加一个后缀,以便在调用该函数时

list2env() 

并提取其名称之前添加了后缀的数据框。我怎样才能做到这一点?

样本数据

df1 <- as.data.frame(matrix(data = c(1,2,3)))
df2 <- as.data.frame(matrix(data = c(1,2,3)))
lst <- list(df1,df2)

标签: rlistdataframe

解决方案


如果我们需要自动获取 a ,named list请在. 在下面的代码中,我们获取名称以 ( ) 开头的对象的值,子字符串 'df' 后跟一个或多个数字 ( ) 直到字符串的结尾 ( )。mgetpatternls^\\d+$

lst1 <- mget(ls(pattern = '^df\\d+$'))

现在,如果我们list2envlistcreated 上使用,它将更新全局环境中的相同对象

list2env(lapply(lst1, transform, new = V1 + 3), .GlobalEnv)

如果我们需要创建新对象,只需更改名称lst1

names(lst1) <- paste0(names(lst1), "_2018")
list2env(lapply(lst1, transform, new = V1 + 3), .GlobalEnv)

推荐阅读