У меня есть большой блок данных с экспериментами с различными параметрами. Каждая комбинация параметров несколько казней:Как я могу оставить столбцы нетронутыми с агрегатом в R
PROFILE TIME NTHREADS PARAM1 PARAM2 PARAM3
prof1 3.01 1 4 10 1
prof1 2.90 1 4 10 1
prof1 3.02 1 4 10 1
prof1 1.52 1 4 10 2
prof1 1.60 1 4 10 2
...
Я использую агрегат, чтобы получить лучшее время для каждой комбинации профиль & nthreads:
data_aggregated <- aggregate(data$TIME,
by = list(PROFILE = data$PROFILE,
NTHREADS = data$NTHREADS),
FUN = min)
Это возвращает новый dataframe вроде этого:
PROFILE NTHREADS TIME
prof1 1 1.52
prof1 2 0.9
prof2 1 1.41
prof2 2 0.88
...
Я хочу получить значения PARAM1, PARAM2, PARAM3 для совокупной строки в каждом случае (один с минимальным временем). На данный момент я смотрю в первую строку данных строку, где PROFILE, TIME и NTHREADS равны тем, которые находятся во втором блоке данных, но, возможно, есть более простой способ?
'which.min (TIME)' также должны работать для вас –
Может быть, вы должны добавить еще один шаг, чтобы объединить два dataframes. –