مسیر
/
R
R
/
برنامه‌ی درسی
/
مقدار منطقی
مق

مقدار منطقی در R

1 تمرین

درباره‌ی مقدار منطقی

مقادیر منطقی در R

مقدارهای درست یا غلط با نوع logical نمایش داده می‌شوند. این نوع فقط دو مقدار دارد: TRUE و FALSE.

TRUE
#> [1] TRUE
FALSE
#> [1] FALSE
typeof(TRUE)
#> [1] "logical"

عملگرهای منطقی

در R پنج عملگر «منطقی» وجود دارد.

!TRUE # FALSE (not)
TRUE && FALSE # FALSE (scalar and)
TRUE || FALSE # TRUE (scalar or)

TRUE & FALSE # FALSE (vector and)
TRUE | FALSE # TRUE (vector or)

&& و & عملگر «و» منطقی هستند. اگر عبارت‌های هر دو طرف && مقدار TRUE داشته باشند، به TRUE ارزیابی می‌شوند.

|| و | عملگر «یا» منطقی هستند. اگر عبارت یکی از دو طرف || مقدار TRUE باشد، به TRUE ارزیابی می‌شوند.

توجه کنید که دو مجموعه عملگر «و/یا» وجود دارد.

  • نسخه‌های دوکاراکتری روی مقادیر تک عمل می‌کنند.
  • گونه‌های تک‌کاراکتری به‌صورت عنصر‌به‌عنصر روی بردارها عمل می‌کنند و برداری از مقادیر منطقی برمی‌گردانند.

این تفاوت در مفهوم vector-filtering مهم می‌شود و احتمالاً روشن‌تر هم خواهد شد.

استفاده از & و | روی مقادیر تک در مثال بالا کار می‌کند، چون این‌ها به‌عنوان بردارهایی با طول ۱ در نظر گرفته می‌شوند. رفتارشان با عملگرهای دوکاراکتری تفاوت ظریفی دارد، چون فقط دومی‌ها «اتصال کوتاه» هستند: اگر مقدار چپ برای تعیین نتیجه کافی باشد، مقدار سمت راست ارزیابی نمی‌شود. بنابراین صرف‌نظر از اینکه anything چه عبارت منطقی‌ای را نشان دهد، TRUE || anything همیشه TRUE است و anything نادیده گرفته می‌شود.

استفاده از && یا || روی بردارها (با طول ۲ یا بیشتر) یعنی در مقایسه فقط عنصر اول استفاده می‌شود، که به یک TRUE/FALSE واحد و احتمالاً یک پیام هشدار می‌انجامد. احتمالاً این چیزی نیست که می‌خواستید.

! عملگر «نقیض» منطقی است. این عملگر مقادیر TRUE و FALSE را با هم جابه‌جا می‌کند.

!TRUE
#> [1] FALSE
!FALSE
#> [1] TRUE

برای عبارت‌های طولانی‌تر و پیچیده‌تر، بهتر است از پرانتز استفاده کنید تا منظورتان روشن باشد.

(TRUE || FALSE) && (FALSE && TRUE)
#> [1] FALSE

TRUE || FALSE && (FALSE && TRUE)
#> [1] TRUE

عملگر میان‌وندی برای یا انحصاری وجود ندارد (یعنی A یا B، اما نه هر دو). در این حالت می‌توان از تابع xor() استفاده کرد.

xor(TRUE, FALSE)
#> [1] TRUE
xor(TRUE, TRUE)
#> [1] FALSE
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

مقدار منطقی را یاد بگیرید