R 如何通过';Theoph';数据集?

R 如何通过';Theoph';数据集?,r,data.table,R,Data.table,我使用R中的datasets包中的Theoph数据集作为练习。我想看看我是否能得到每个受试者达到最大集中的时间。如何使用data.table执行此操作 编辑:这是我以前尝试过的,但不起作用: library(data.table) theophylline <- as.data.table(Theoph) theophylline[,.(Time), by = .(by1 = Subject, by2 = conc)] 使用dat.atable,我们按“主题”分组,使用which.max

我使用R中的
datasets
包中的
Theoph
数据集作为练习。我想看看我是否能得到每个受试者达到最大集中的时间。如何使用data.table执行此操作

编辑:这是我以前尝试过的,但不起作用:

library(data.table)
theophylline <- as.data.table(Theoph)
theophylline[,.(Time), by = .(by1 = Subject, by2 = conc)]

使用
dat.atable
,我们按“主题”分组,使用
which.max
获得“conc”最大的索引,并使用该索引将“时间”子集

library(data.table)
setDT(Theoph)[, .(TimeMaxConc = Time[which.max(conc)]), by = Subject]

请ie添加示例代码、当前输出和预期输出。链接的问题更一般(关于选择整行),但您可以选择末尾的列,如
theophyline[theophyline[,.I[which.max(conc)],Subject]$V1,(Subject,Time)]
theophyline[,.SD[which.max(Time)],by=Subject,.SDcols=“Time”]
@Frank,谢谢你的回复。您回复中的第一段代码给了我与@Akrun代码相同的结果,我觉得这也简单得多(这也是我接受他的答案的原因)。你的第二个答案给了我每个主题的峰值时间,而不是峰值集中的时间
.SD[which.max(Time)]
在你的代码中应该读
.SD[which.max(conc)]
?是的,对不起;你是对的。那是我的打字错误/大脑放屁
library(data.table)
setDT(Theoph)[, .(TimeMaxConc = Time[which.max(conc)]), by = Subject]