Использование встроенных закрытий / функции-делегаты в Actionscript

Разделите ваши данные на два кадра данных, один для элементов управления и один для вмешательств, а затем объедините их вместе.

df
        study group_allocation    outcome bl_mean fu_timepoint fu_mean mean_diff
1 Smith, 1999   intervention_1 depression     6.5            6     5.2      -2.3
2 Smith, 1999          control depression     4.5            6     7.5        NA
3 Jones, 1996   intervention_1    anxiety     3.7           12     2.5      -3.8
4 Jones, 1996   intervention_2    anxiety     4.2           12     2.7      -3.6
5 Jones, 1996          control    anxiety     5.3           12     6.3        NA

 interventions<-df[grep("intervention", df$group_allocation),]

 interventions
        study group_allocation    outcome bl_mean fu_timepoint fu_mean mean_diff
1 Smith, 1999   intervention_1 depression     6.5            6     5.2      -2.3
3 Jones, 1996   intervention_1    anxiety     3.7           12     2.5      -3.8
4 Jones, 1996   intervention_2    anxiety     4.2           12     2.7      -3.6


 controls<-df[grep("control", df$group_allocation),]

 controls
        study group_allocation    outcome bl_mean fu_timepoint fu_mean mean_diff
2 Smith, 1999          control depression     4.5            6     7.5        NA
5 Jones, 1996          control    anxiety     5.3           12     6.3        NA

 names(controls)<-paste0("cg_", names(controls)) #add cg prefix to colnames

 new_df<-merge(interventions, controls, by.x="study", by.y="cg_study", all.x=TRUE)

 new_df
        study group_allocation    outcome bl_mean fu_timepoint fu_mean mean_diff cg_group_allocation cg_outcome cg_bl_mean cg_fu_timepoint cg_fu_mean cg_mean_diff
1 Jones, 1996   intervention_1    anxiety     3.7           12     2.5      -3.8             control    anxiety        5.3              12        6.3           NA
2 Jones, 1996   intervention_2    anxiety     4.2           12     2.7      -3.6             control    anxiety        5.3              12        6.3           NA
3 Smith, 1999   intervention_1 depression     6.5            6     5.2      -2.3             control depression        4.5               6        7.5           NA
5
задан The Archetypal Paul 16 November 2008 в 09:58
поделиться

3 ответа

Самый большой глюк, чтобы не упустить - то, что часто 'это' не определяется во встроенном закрытии. Иногда можно установить 'это', но это - не всегда право 'это', что Вы имели бы в наличии для установки, в зависимости от того, как Вы используете их.

Но я сказал бы, что большая часть кода Flex, я продолжил работать, имела встроенные закрытия rampantly всюду по коду - так как обратные вызовы являются единственным способом получить работу, сделанную, и часто Вам не нужно то, чтобы приносить целую отдельную функцию.

Иногда, когда вложенная функция добирается, чтобы быть слишком много, я выломаю ее немного с Функциональными переменными в функции; это помогает мне организовать немного путем предоставления маркировок функциям, но хранения некоторых характеристик встроенных закрытий (доступ к локальным переменным, например).

Надеюсь, это поможет.

3
ответ дан 14 December 2019 в 13:51
поделиться

Одна дополнительная проблема состоит в том, что сборка "мусора" повреждается когда дело доходит до закрытий (по крайней мере, в Flash 9). Первая инстанция данного закрытия (с лексической точки зрения) никогда не будет собираться "мусор" - наряду ни с чем больше ссылаемым закрытием в цепочке объема.

2
ответ дан 14 December 2019 в 13:51
поделиться

Я нашел то, что первоначально заставило меня не хотеть делать это, но я забыл детали:

http://livedocs.adobe.com/flex/3/html/16_Event_handling_6.html#119539

(Это - то, что Mitch упомянул - до 'этого' ключевого слова, являющегося из объема),

Таким образом, это - ответ Adobe, однако я буду должен, намного более вероятно, обратиться к локальным переменным, чем 'это'.

Как другие интерпретируют рекомендацию Adobe?

1
ответ дан 14 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: