在R中对列表中的数据帧进行排序
假设我有名为df1到df20的数据帧。这些数据帧位于列表中 列表中的数据顺序为“df1”、“df10”、“df11”、“df12”,在R中对列表中的数据帧进行排序,r,R,假设我有名为df1到df20的数据帧。这些数据帧位于列表中 列表中的数据顺序为“df1”、“df10”、“df11”、“df12”, 如何使其成为“df1”、“df2”、“df3”、“df4”?创建名称向量并将其子集。如果列表被称为dflist dflist <- dflist[paste0('df', 1:20)] dflist <- dflist[stringr::str_sort(names(dflist), numeric = TRUE)] i <- stringr
如何使其成为“df1”、“df2”、“df3”、“df4”?创建名称向量并将其子集。如果列表被称为
dflist
dflist <- dflist[paste0('df', 1:20)]
dflist <- dflist[stringr::str_sort(names(dflist), numeric = TRUE)]
i <- stringr::str_order(names(dflist), numeric = TRUE)
dflist <- dflist[i]
dflist <- dflist[order(as.integer(sub("df", "", names(dflist))))]
程序包
stringr
函数stru sort
和stru order
有一个参数numeric
,当设置为TRUE
时,该参数会进行数字排序。这里有两种方法,假设data.frames列表名为dflist
dflist <- dflist[paste0('df', 1:20)]
dflist <- dflist[stringr::str_sort(names(dflist), numeric = TRUE)]
i <- stringr::str_order(names(dflist), numeric = TRUE)
dflist <- dflist[i]
dflist <- dflist[order(as.integer(sub("df", "", names(dflist))))]
dflist您可以使用sub
删除列表的名称中的字符串df,使用as.integer
将结果强制转换为整数,并使用order
的输出在列表中获得所需的顺序
dflist <- dflist[paste0('df', 1:20)]
dflist <- dflist[stringr::str_sort(names(dflist), numeric = TRUE)]
i <- stringr::str_order(names(dflist), numeric = TRUE)
dflist <- dflist[i]
dflist <- dflist[order(as.integer(sub("df", "", names(dflist))))]