2017-06-16 72 views
5
library(dplyr) 
tib <- tibble(a = c(1,2,3)) 

aşağıdaki işin içine toplamı:dplyr: beklendiği gibi ardışık bir dönüştürme

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 

gelmez aşağıdadır: Ben sütun c sonucunu beklediğiniz

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 

aynı olacak şekilde yukarıda, 14 her yerde. Neyi yanlış yaptığım hakkında bir fikrin var mı?

+0

Benim için beklediğim gibi çalışıyor – Sotos

+0

@Sotos Hangi sürümü kullanıyorsunuz? Benim için 'dplyr 0.7.0' ile çalışmıyor. Bu bakış benim için hatayı seviyor. – m0nhawk

+2

Karma bir sistem hatası gibi görünüyor; tibble (a = c (1,2,3), b = a^2, c = toplam (b)) ve tib%>% mutasyon (b = a^2, c = sum (.data $ b))) beklendiği gibi çalışın. – alistaire

cevap

3

İkisi de dplyr sürümleriyle kontrol ettim: yeni tidyeval motorunda bir hataya benziyor. Hatayı Github'da dosyaladım.


Güncelleme: Bu çözüldü

. Issue. dplyr 0.7.1 ve daha yeni sürümünün bu sorunu artık mevcut değil.

+0

Bunu yaptığınız için teşekkür ederiz. – Habert