访问dplyr中的组级别

时间:2017-01-22 09:22:27

标签: r dplyr

我想在dplyr中获取分组对象的组级别。这当然等于分组后的分组变量。 分组变量不能修改,但可以扩展。请看以下示例:

some_df <- data_frame(gr    = LETTERS[1:2], 
                      value = c(3,4))

add_a_row <- function(x) {
  row <- data_frame(gr = NA, value = NA)
  if (runif(1) < 0.5) {
    rbind(x, row)
  } else {
    rbind(row, x)
  }
}

some_df %>% group_by(gr) %>% 
  do(add_a_row(.)) %>% 
  do( )    

因此,对每个组添加一个空行,作为第一行或最后一行。在最后do我想设置&#39; gr&#39;到集团层面。有没有办法访问组级别,以便最终do可以是:

 do(mutate(., gr = gr_level))

(以上只是用例的一个例子。问题是如何访问组级别,而不是如何解决上面的小问题。)

1 个答案:

答案 0 :(得分:-2)

我们可以通过将NA创建中的x$gr更改为row来略微更改功能

add_a_row <- function(x) {
    row <- data_frame(gr = x$gr, value = NA)
     if (runif(1) < 0.5) {
      rbind(x, row)
     } else {
     rbind(row, x)
   }
 }

some_df %>%
     group_by(gr) %>% 
     do(add_a_row(.))
#    gr value
#    <chr> <dbl>
#1     A    NA
#2     A     3
#3     B    NA
#4     B     4

-