Мы можем использовать rep
или gl
для создания группирующей переменной
library(dplyr)
my.df %>%
group_by(grp = as.integer(gl(n(), 5, n()))) %>%
#or with rep
# group_by(grp = rep(row_number(), length.out = n(), each = 5))
summarise(sum = sum(y), mean = mean(y))
# A tibble: 2 x 3
# grp sum mean
# <int> <dbl> <dbl>
#1 1 174 34.8
#2 2 211 42.2
Если Ваш код будет звонить FacesContext, то он не будет работать вне потока, связанного с жизненным циклом запроса JSF. Объект FacesContext создан для каждого запроса и расположен в конце запроса. Причина можно выбрать его через статический вызов , состоит в том, потому что это установлено на ThreadLocal в начале запроса. Жизненный цикл FacesContext не переносит отношения к тому из ServletContext.
, Возможно, это не достаточно (это кажется, что Вы уже снизились на этот маршрут), но необходимо смочь использовать ServletContextListener, чтобы сделать то, что Вы хотите. Просто удостоверьтесь, что любые вызовы к FacesContext сохранены в потоке запроса JSP.
web.xml:
<listener>
<listener-class>appobj.MyApplicationContextListener</listener-class>
</listener>
Реализация:
public class MyApplicationContextListener implements ServletContextListener {
private static final String FOO = "foo";
public void contextInitialized(ServletContextEvent event) {
MyObject myObject = new MyObject();
event.getServletContext().setAttribute(FOO, myObject);
}
public void contextDestroyed(ServletContextEvent event) {
MyObject myObject = (MyObject) event.getServletContext().getAttribute(
FOO);
try {
event.getServletContext().removeAttribute(FOO);
} finally {
myObject.dispose();
}
}
}
можно обратиться к этому объекту через область действия приложения JSF (или просто непосредственно, если никакая другая переменная не существует с тем же именем):
<f:view>
<h:outputText value="#{applicationScope.foo.value}" />
<h:outputText value="#{foo.value}" />
</f:view>
, Если Вы хотите получить объект в управляемом компоненте JSF, можно получить его от ExternalContext:
FacesContext.getCurrentInstance()
.getExternalContext().getApplicationMap().get("foo");
Используя слушателей или загрузку на запуск, попробуйте это: http://www.thoughtsabout.net/blog/archives/000033.html