用第一个值总结

时间:2017-04-15 01:14:16

标签: r segmentation-fault dplyr

我在使用summarise时遇到了奇怪的行为。

df <- data.frame(id = c(1, 2, 3, 3, 4),
                 color = c(NA, "blue", "red", "blue", NA),
                 stringsAsFactors = FALSE)
df
#   id color
# 1  1  <NA>
# 2  2  blue
# 3  3   red
# 4  3  blue
# 5  4  <NA>

第一部分

让我们为每个color提取id的第一个值:

df %>% 
  group_by(id) %>% 
  summarise(result = color[1])
# # A tibble: 4 × 2
#      id result
#   <dbl>  <chr>
# 1     1       
# 2     2   blue
# 3     3    red
# 4     4   <NA>

我期待<NA>而不是空字符串。我做错什么了吗? first(color)产生正确的输出,但我相信color[1]是等价的。

此外,color %>% first产生与color[1]相同的输出,这让我更加困惑。

第二部分

让我们输入以下无意义的代码:

df%>% 
  group_by(id) %>% 
  summarise(color = color[1],
            color2 = first(color))

我遇到了段错误。这是一个已知的错误还是应该报告?我发现一些旧的SO问题和GitHub线程看起来非常相似,但它们看起来已经解决了。

注意:我在dplyr 0.5.0

上使用R 3.3.3

1 个答案:

答案 0 :(得分:0)

如评论中所述:两个问题都是错误,两者都在dplyr 0.7.0中修复