我在使用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
答案 0 :(得分:0)
如评论中所述:两个问题都是错误,两者都在dplyr 0.7.0中修复