使用 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")]), ]
我有一个列表,我想根据某些条件重新排序。
如果我对列名进行硬编码,我会得到我想要的。
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")]), ]