R 如何通过';Theoph';数据集?
我使用R中的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
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]