使用 R 中未硬编码的列名对列表进行排序

ordering a list using column names that aren't hardcoded in R

我有一个列表,我想根据某些条件重新排序。

如果我对列名进行硬编码,我会得到我想要的。

tab <- tab[ order( tab$inclass , tab$childage , tab$region, tab$line ) , ]

我正在尝试概括代码,以便我可以使用非硬编码的列名称(我的 cuchars 变量)和一个常量列行。

cuchars <- c('inclass','childage','region')

我试过的是

tab2<- tab[ order( do.call(paste0,list('tab$',c(cuchars,'line'),collapse=', ') ) ) , ]

但它正在删除除第一行以外的所有数据。

为什么会这样?我该如何修复代码? 谢谢!

这是一个方法:

tab[do.call(order, tab[c(cuchars, "line")]), ]