r - 用第一个值总结

标签 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.0R 3.3.3

最佳答案

正如评论中所说:两个问题都是错误,并且都在 dplyr 0.7.0 中得到修复

关于r - 用第一个值总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43421152/

相关文章:

c - 通过套接字传递字符串数组

使用核心文件检查使用的堆栈大小

r - dplyr:lead() 和 lag() 与 group_by() 一起使用时出错

r - 从函数内部获取所有函数参数的列表

r - 如何将数据椭圆叠加在 ggplot2 散点图上?

r - 如何重命名 R 中 DT 数据表的过滤器中的占位符?

r - dplyr:如何按名称选择连接列?

r - 如何根据任意顺序对 data.table 的行进行排序?

c - C程序运行时出现段错误

r - 使用 dplyr 绑定(bind)数据库中的行