5
library(dplyr)
tib <- tibble(a = c(1,2,3))
下按预期方式工作:dplyr:总和内连续发生变异
tib %>% mutate(b = a^2, c = sqrt(b))
# A tibble: 3 x 3
a b c
<dbl> <dbl> <dbl>
1 1 1 1
2 2 4 2
3 3 9 3
tib %>% mutate(b = a^2, c = sum(a))
# A tibble: 3 x 3
a b c
<dbl> <dbl> <dbl>
1 1 1 6
2 2 4 6
3 3 9 6
tib %>% mutate(b = a^2) %>% mutate(c = sum(b))
# A tibble: 3 x 3
a b c
<dbl> <dbl> <dbl>
1 1 1 14
2 2 4 14
3 3 9 14
下列不:
tib %>% mutate(b = a^2, c = sum(b))
# A tibble: 3 x 3
a b c
<dbl> <dbl> <dbl>
1 1 1 1.482197e-323
2 2 4 1.482197e-323
3 3 9 1.482197e-323
我期望的结果列C是相同的以上,到处都是14。 任何有关我在做什么错误的见解?
按预期为我工作 – Sotos
@Sotos您使用的是哪个版本?它不适用于'dplyr 0.7.0'。这看起来很喜欢我的错误。 – m0nhawk
看起来像一个混合评估错误; 'tibble(a = c(1,2,3),b = a^2,c = sum(b))'和'tib%> mutate(b = a^2,c = sum(.data $ b ))按预期工作。 – alistaire