понятна разница между apply = TRUE и apply = FALSE
В этой функции нет такого аргумента
не играл, но вроде в документации все прозрачно написано. https://sebkrantz.github.io/collapse/reference/ftransform.html apply logical. TRUE (default) will apply FUN to each column selected in vars; FALSE will apply FUN to the subsetted data frame i.e. FUN(get_vars(.data, vars), ...). The latter is useful for collapse functions with data frame or grouped / panel data frame methods, yielding performance gains and enabling grouped transformations. применяем либо ко всему фрейму, либо по группам, если сгруппировано.
Спасибо, я выше приводил некоторые примеры, мне не очень понятно =(
collapse надо курить долго и вдумчиво. и писать все предельно понятным образом. library(collapse) library(data.table) lagamount <- 1 testdf_1 <- data.table(group = c(1,1,1,1,1,2,2,2,2,2), counter = as.integer(c(1,2,3,5,6,7,8,9,11,12)), xval = seq(100, 1000, 100)) testdf_2 <- copy(testdf_1) # ftransformv(.data, vars, FUN, ..., apply = TRUE) # flag = Fast Lags and Leads for Time Series and Panel Data (collapse) # flag(x, n = 1, g = NULL, t = NULL, fill = NA, stubs = TRUE, ...) settransformv(testdf_1, "xval", flag, 1:3, group, counter, apply = FALSE) t1 <- copy(testdf_1) settransformv(testdf_1, "xval", FUN = flag, n = 1:3, g = group, t = counter, apply = FALSE) t2 <- copy(testdf_1) identical(t1, t2) settransformv(testdf_2, "xval", flag, 2, NULL, NULL, apply = TRUE) что имеем? все ... после flag — ее параметры кроме apply. если мы меняем по месту одну переменную (testdf_2), то не может быть вектор лага 1:3. Ошибка об этом и говорит: Error in ftransform_core(.data, value) : Lengths of replacements must be equal to nrow(.data) or 1, or NULL to delete columns А в первом варианте предполагается, что генерится датасет и он потом вставляется и гонится цикл. Я просто немного поглядел код для понимания картины, на самом деле надо разбираться более глубоко. Тут множественные векторизации и группировки, требуется тщательно расписывать что куда идет. А без четкого именования и комментариев через несколько дней такую текстовку и не разберешь.
У меня очень похожее ощущение после data.table. Как то синтакс очень навороченный
я его много раз смотрел и откладывал. нет такой нужды-нужды писать, скорости хватает
Обсуждают сегодня