如何按数字顺序合并R语言中coord1至coord60共60个dataframe?
解决按数字顺序合并coord1-coord60数据框的问题
你遇到的顺序问题是因为ls()返回的变量名按字典序排序,而非数字逻辑顺序,所以coord1之后会先出现coord10-19,再到coord2。以下是两种可行的解决方法:
方法一:直接生成有序变量名(已知范围为1-60时推荐)
直接生成从coord1到coord60的有序名称向量,再按顺序合并:
# 生成1到60的有序变量名 coord_sorted <- sprintf("coord%d", 1:60) # 按顺序合并数据框 new_df <- do.call("rbind", mget(coord_sorted))
方法二:提取数字排序(变量数量/范围不确定时使用)
先获取所有coord开头的变量名,提取名字中的数字部分并按数字排序,再合并:
# 获取所有coord开头的变量名 coord_names <- ls(pattern = "^coord") # 提取数字部分转为整数,按数字排序变量名 coord_sorted <- coord_names[order(as.integer(sub("coord", "", coord_names)))] # 按顺序合并数据框 new_df <- do.call("rbind", mget(coord_sorted))
内容的提问来源于stack exchange,提问作者CorazondeTernera
相关产品推荐
相关产品推荐

