使用group_by的Dplyr变异给了我不正确的值(BUG?)

时间:2016-02-25 16:14:00

标签: r dplyr

请参阅下面的可重复示例。第一个示例返回OUT变量的错误向量(组2的OUT值应为10)。

library(dplyr)
x <- c(1, 1,2,2)
v <- c(NA,NA,10,20)
t <- c(1,2,1,2)
df = data.frame(x,v,t)
df = df %>% group_by(x) %>% mutate(out=v[which.min(t)])
df$out

以下示例仅更改组1的一个值,但这会导致命令返回组2(另一组)的正确答案。

 v <- c(1,NA,10,20)
 df = data.frame(x,v,t)
 df = df %>% group_by(x) %>% mutate(out=v[which.min(t)])
 df$out

我错过了什么或这是计算错误吗?

1 个答案:

答案 0 :(得分:0)

目前的开发版本dplyr_0.4.3.9001已解决此问题。

要解决此问题,您必须执行以下操作(来自GitHub上的issue #1904):

# 1. Install current dev. version of 'devtools'

         devtools::install_github("hadley/devtools")

# 2. Restart R session  - IMPORTANT!

# 3. After restart install dev. version of both 'lazyeval' and 'dplyr'  

        devtools::install_github("hadley/lazyeval")
        devtools::install_github("hadley/dplyr")