2015-01-21 19 views
9

Sanırım ilk hatayı bir yazım hatası ile aponda tökezledim.dplyr & r: Anonim işlevler myst parantezize edilebilir

Aşağıdaki kodu R ve dplyr ile çalıştırıyorum.

> foobar = c(1,2,3) 
> foobar %>% as.character 
[1] "1" "2" "3" 

Bu iyi çalışıyor, şimdi anonim bir işlevle çalıştırmayı deniyorum.

> foobar %>% function(x) x * 2 
Error: Anonymous functions myst be parenthesized 

Neler olduğu hakkında bir fikriniz var mı? (Ve 'mist' almak zorunda ping 'ping') 'zorunda mı?

+0

'dplyr_0.4.0' içinde, hata' Hata: Anonim işlevler parantez içine alınmalıdır ' – akrun

+1

Hata iletisi magrittr dev sürümünde yaklaşık bir ay önce giderildi, bu yüzden magrittr olduğunda düzeltmenin CRAN'a geleceğini tahmin ediyorum 1.6 çıkar. Buraya bakın: https://github.com/smbache/magrittr/commit/e95aa63960e6926b701d0fe927587bacccb53f0f – Ajar

cevap

11

Hata iletisi oldukça bilgilendiricidir (bir sözcük yanlış yazılmış bile olsa). Parantezleri anonim işlev etrafına koyun.

foobar <- 1:3 
foobar %>% (function(x) x * 2) 
# [1] 2 4 6 

açıklama için bu dplyr ile ilgisi yoktur

help("%>%", "magrittr") 

yılında%>% ile Call-veya işlev üreten rhs'si bölümünü kullanarak bakın. Hata mesajındaki yazım hatasıyla ilgili olarak, dikkat etmeniz gereken bir şey bulduğunuzda, paketin sağlayıcısına başvurabilirsiniz. magrittr'un en son geliştirme sürümünde this has been fixed görünüyor olsa da. Bir paket devamlılaştırıcısı bulmak kolay bir yolu bir e-posta adresi içerdiğinden sonuç vazgeçilmekle

maintainer("magrittr") 

kullanmaktır.