gpt4 book ai didi

r - 在 R 基本顺序中自动选择列()

转载 作者:行者123 更新时间:2023-12-04 10:08:37 25 4
gpt4 key购买 nike

我正在 R 中从事自动化项目。我想按行值订购输入数据集(即数据框)。 不允许使用硬编码值,因为它是自动代码。 下面可重现的例子:

data("mtcars")
groupBY <- c('cyl','carb')

通常,我会继续订购:
mtcars_ordered <- mtcars[order(mtcars$cyl,mtcars$carb),]

或这个:
mtcars_ordered <- mtcars[with(mtcars,order(cyl,carb)),]

但在这里我处于“自动化世界”,没有硬编码值。因此,我正在寻找这样的东西:
mtcars_ordered_auto <- mtcars[with(mtcars,order(groupBY)),]
order()接受向量,即数据框的子集,但我找不到仅使用 R base 的方法。

PS最终,我按照建议成功地使用了 fn$sqldf here ,通过写作:
groupBY_str <- paste(groupBY,collapse=',')
mtcars_ordered_sql <- fn$sqldf('select * from mtcars order by $groupBY_str').

尽管如此,我很好奇如何用基础 R 解决它。

最佳答案

我们可以使用 do.call

mtcars_ordered_auto <- mtcars[do.call(order, mtcars[groupBY]),]

- 检查 OP 的输出
identical(mtcars_ordered, mtcars_ordered_auto)
#[1] TRUE

关于r - 在 R 基本顺序中自动选择列(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61447765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com