Я пытаюсь вычислить простое соотношение, используя data.table. Разные файлы имеют разные значения tmax, поэтому мне нужно ifelse
. Когда я отлаживаю это, DT выглядит хорошо. tmaxValue
- это одно значение (первое «t = 60», встречающееся в этом случае), но t0Value
- это все значения «t = 0» в dt.
summaryDT <- calculate_Ratio(reviewDT[,list(Result, Time), by=key(reviewDT)])
calculate_Ratio <- function(dt){
tmaxValue <- ifelse(grepl("hhep", inFile, ignore.case = TRUE),
dt[which(dt[,Time] == "t=240min"),Result],
ifelse(grepl("hlm",inFile, ignore.case = TRUE),
dt[which(dt[,Time] == "t=60"),Result],
dt[which(dt[,Time] == "t=30"),Result]))
t0Value <- dt[which(dt[,Time] == "t=0"),Result]
return(dt[,Ratio:=tmaxValue/t0Value])
}
То, что я получаю, это Result
для tmaxValue
, разделенное на все Result
для всех t0Value
, но мне нужно одно соотношение для каждого уникального by
.
Спасибо за помощь.