SORU
2 Temmuz 2011, CUMARTESİ


R - operatörler && ve ||boolean

Eski daha sonra ise vectorized R dili arasındaki fark & ve & & tanımı (buna | ve ||) göre.

Buna göre site: http://www.stat.psu.edu/~dhunter/R/html/base/html/Logic.html Okudum fark benzer şekilde, fark arasında bir "Ve" ve "AndAlso" (buna "Ya da" ve "OrElse")...yani tüm değerlendirmeler eğer onlar olmak zorunda değil (yani A veya B veya C ise her zaman gerçek Bir gerçek, bu yüzden durdurmak değerlendiren Bir gerçek)

Biri ışık tutacak misin? Ayrıca, orada R AndAlso ve OrElse?

CEVAP
2 Temmuz 2011, CUMARTESİ


Daha kısa olanlar, bir vektör, bu gibi geri geldiler anlamı vectorized

> ((-2:2) >= 0) & ((-2:2) <= 0)
[1] FALSE FALSE  TRUE FALSE FALSE

Uzun form yukarıda verir, böylece hemen her vektör yalnızca ilk öğe incelemek için sol değerlendirir

> ((-2:2) >= 0) && ((-2:2) <= 0)
[1] FALSE

Yardım sayfasına dediği gibi, bu uzun formu yapar programlama için uygun kontrol-akış ve [] "genellikle şartların tercih sebebidir."

Vektör uzunluğu vardır kesin olan tek uzun formları kullanmak istiyorsun.

Olmalıdırkesinliklebazı vektörler sadece boy uzunluğu sadece 1 booleans döndüren fonksiyonlardır durumlarda gibi 1. Eğer bu vektör uzunluğu muhtemelen ^ eğer kısa formları kullanmak istiyorsunuz . 1. Öyle değilsen kesinlikle eminim, sen de kontrol et ilk olarak, kısa form ve kullanım all any azaltmak için uzunluğu için kullanılan kontrol akım tablosu, if.

Fonksiyonlar all any eğer sık sık karşılaştırmalar veya herhangi bir gerçek ise, sırasıyla görmek vectorized bir karşılaştırma sonucu kullanılır. Bu işlevler sonuçları vectorized karşılaştırma sonuçları ise eğer maddeleri kullanmak için uygun olduklarını çok uzunluğu 1 olacağından emin olabilirsiniz. (Gerçi bu sonuçları ifelse kullanım için uygun olacaktır.

Son bir fark: && || sadece ihtiyaçları kadar hüküm kısa devre ne anlama geldiği gibi) değerlendirir. Örneğin, burada tanımsız bir değeri varsa kısa devre yapmasaydın. a; kullanarak & | gibi bir karşılaştırma bir hata verecek mi, bilmiyorum.

> a
Error: object 'a' not found
> TRUE || a
[1] TRUE
> FALSE && a
[1] FALSE
> TRUE | a
Error: object 'a' not found
> FALSE & a
Error: object 'a' not found

Son olarak, The R Inferno başlıklı bölümünde 8.2.17 görmek "ve evet, bilmiyorum".

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog2

    EEVblog2

    2 HAZİRAN 2014
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009