如何批量替换R全局环境中所有dataframe名称里的空格
批量替换R全局环境中data.frame名称内的空格
你可以通过遍历全局环境中的data.frame对象,结合名称替换与赋值操作实现需求,示例代码如下:
library(stringr) # 提取全局环境中所有data.frame的名称 df_names <- Filter(function(obj) is.data.frame(get(obj)), ls()) # 批量重命名:将空格替换为下划线,可自行替换为其他符号(如.、-等) for (old_name in df_names) { new_name <- str_replace_all(old_name, " ", "_") # 新名称写入全局环境 assign(new_name, get(old_name)) # 若无需保留原带空格的数据集,可取消注释下行删除旧对象 # rm(list = old_name) }
之前尝试失败大概率是没有正确获取旧名称对应data.frame的实际内容,上述代码中的get()函数就是用来根据对象名提取对应值,配合assign即可完成跨名称赋值。
如果担心新名称和现有变量重名导致覆盖,可在assign前增加判断逻辑:
if (!exists(new_name)) { assign(new_name, get(old_name)) }
内容的提问来源于stack exchange,提问作者flxflks
相关产品推荐
相关产品推荐

