gpt4 book ai didi

r - 如何在给定特定行顺序的情况下对 R data.table 中的行重新排序

转载 作者:行者123 更新时间:2023-12-04 15:27:40 26 4
gpt4 key购买 nike

给定一个 data.table 和 vector like

fruit.inventory <- data.table(fruit=c('apples', 'oranges', 'bananas'), count=c(5, 16, 23))
fruit.request <- c('pineapple', 'peaches', 'oranges', 'apples')

我怎样才能取回这个

# fruit  count
# oranges 16
# apples 5

我知道这可以用这样的东西来完成

setkey(fruit.inventory, fruit)
fruit.subset <- fruit.inventory[fruit.request]
fruit.subset <- fruit.subset[complete.cases(fruit.subset)]

但是,我想使用更短的东西,比如

fruit.subset <- fruit.inventory[fruit %in% fruit.request]

但它不尊重原始向量的顺序。我知道还有其他一些解决方法,但我一直认为必须有一种比我上面的方法更简单的方法来做到这一点。

最佳答案

这是使用内部连接的另一种选择:

fruit.inventory[.(fruit.request), on=.(fruit), nomatch=0L]

关于r - 如何在给定特定行顺序的情况下对 R data.table 中的行重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61940205/

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