当 dplyr::mutate 用于分组的 data.table 时,分组随后会丢失。 data.frame 不会发生此行为。这是一个错误吗?我正在使用 dplyr_0.4.1 和 data.table_1.9.4。
require(data.table)
require(dplyr)
by_cyl_df <- group_by( mtcars, cyl ) %>%
dplyr::mutate( . ,
maxmpg = max( mpg )
)
groups( by_cyl_df )
[[1]] 缸
by_cyl_dt <- group_by( as.data.table(mtcars), cyl ) %>%
dplyr::mutate( . ,
maxmpg = max( mpg )
)
groups( by_cyl_dt )
NULL
这是一打开 dplyr 问题 https://github.com/hadley/dplyr/issues/919。之后mutate
,组被丢弃。如果您查看课程,您可以看到这种情况的发生。
by_cyl_dt_gg <- group_by( as.data.table(mtcars), cyl )
class(by_cyl_dt_gg)
# [1] "grouped_dt" "tbl_dt" "tbl" "data.table" "data.frame"
class(by_cyl_dt_gg %>% mutate(max=max(mpg)))
# [1] "tbl_dt" "tbl" "data.table" "data.frame"
由于它不再分组(groups_dt
类被丢弃),groups
对于这种类型的对象,函数返回 NULL
> dplyr:::groups.tbl_dt
function (x)
{
NULL
}
<environment: namespace:dplyr>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)