r - 在编程模式下从 data.table 中选择行
问题描述
您可以在此答案中找到我的初始解决方案的主要部分。现在我想在程序代码中使用它,并想用变量替换列名。这是我的 MWE,它在最后几行抛出错误:
library(data.table)
set.seed(1)
tb = data.table(g_id = c(1, 1, 1, 2, 2, 2, 3),
item_no = sample(c(24,25,26,27,28,29,30)),
time_no = c(100, 110, 120, 130, 140, 160, 170)
)
# get row with minimum value
# works
tb[, .SD[which.min(item_no)], by = g_id]
# now step by step with variables
mincol = "item_no"
grp = "g_id"
# works
tb[, .SD[which.min(item_no)], by = c(grp)]
# doesn't work
tb[, .SD[which.min(..mincol)], by = c(grp)]
您有什么想法可以使用变量运行此代码吗?
谢谢!
解决方案
一种可能性是使用get
:
tb[, .SD[which.min(get(mincol))], by = c(grp)]
推荐阅读
- c# - 错误 MongoDb 无法隐式转换类型 C#
- ruby-on-rails - Rails rake db:migrate 选项不覆盖现有表
- c - 从 uint8_t 数组中取出 uint16_t 给出错误结果?
- c - 我的最小值部分没有显示真正的最小值
- linux - 在 Solaris 中编译的 Oracle 表单是否可以在 Linux 上运行
- system-verilog - 多路复用通道中的 SystemVerilog 错误:实例数组的非常量索引
- jquery - 当点击下拉菜单打开所有子菜单
- squarespace - 在重复部分中输出 items.categories
- ruby-on-rails - 如何配置到sidekiq队列一次只运行任务
- javascript - 如何编写将替换 url 字符串中的密码的正则表达式?