Мы можем использовать sample
для последовательности строк (row_number()
) и переставить «значение» на основе выборочного индекса
df1 %>%
group_by(class) %>%
mutate(value = value[sample(row_number())])
Или как @RonakShah, упомянутый в комментариях, если мы иметь только одну строку, то использование sample
вызовет sample
последовательности значений. Итак, если мы непосредственно используем sample
для «значения», то можно использовать условие if/else
df1 %>%
group_by(class) %>%
mutate(value = if(n() == 1) value else sample(value, n()))
Если мы хотим использовать sample_n
, это можно сделать в do
df1 %>%
group_by(class) %>%
do(sample_n(., size = nrow(.)))
ПРИМЕЧАНИЕ. Нам нужно указать nrow
вместо n()
, так как некоторые специфические функции приливов и отливов работают в определенных функциях, таких как mutate/fsummarise/filter/arrange
и т. Д., Но они не реализованы для работать вместе с sample_n
Цитата Джона Харпера из списка рассылки quartz-dev :
Есть фундаментальная проблема с возврат любой анимации для onOrderOut - к моменту анимация должна работать, слой больше не в дереве, поэтому у него нет эффект. Так что onOrderOut бесполезен для запуска анимации; это может быть полезно для запуска другого кода, когда слои удаляются из дерева.
Лучшее решение, которое я нашел для этого (при условии перехода затухания по умолчанию на родителя не то, что ты хочешь, чего часто не происходит) заключается в добавлении пользовательских анимация для применения эффекта удаления вы хотите тогда в didStop делегат анимации, фактически удалить слой. Часто бывает удобно создать единую группу анимаций с набором свойств делегата и fillMode = вперед, removeOnCompletion = NO, чтобы вы могли удалите слой в конце анимация без возможности слой все еще виден в его нормальное состояние.
Если вы делаете много таких случаев, легко написать общий суперкласс, который запускает анимацию, устанавливает делегата анимации в класс и реализует + animationDidStop:
для удаления слоя w / o анимация включена. Это восстанавливает природу CoreAnimation «запустил и забыл», которая, как вы надеялись, будет присутствовать в реализации по умолчанию.
Вы проверили, что Ваш метод называют с key
как @"onOrderOut"
и что Ваш метод возвращает корректную анимацию?