Menu
Coddy logo textTech

벡터화된 논리 파트 2

Coddy R 여정의 기초 섹션에 포함된 레슨. 78개 중 21번째.

AND와 OR에 벡터화된 버전이 있는 것처럼 NOT 연산자도 벡터의 각 요소에 대해 작동합니다. 논리값 벡터에 !를 적용하면 각 요소가 개별적으로 반전됩니다.

passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed  # FALSE TRUE FALSE TRUE

각 TRUE는 FALSE가 되고, 각 FALSE는 TRUE가 됩니다. 이는 특정 조건을 충족하지 않는 요소를 찾고 싶을 때 특히 유용합니다.

temperatures <- c(18, 25, 30, 15, 22)

# 20보다 높지 않은 온도 찾기
!(temperatures > 20)  # TRUE FALSE FALSE TRUE FALSE

벡터화된 NOT을 &|와 결합하여 복잡한 필터를 만들 수 있습니다:

ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)

# 참여 가능 조건: age >= 18 OR (18세 미만 AND 권한 있음)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUE

기억하세요: 벡터로 작업할 때는 단일 &, |, !을 사용하고, 단일 값을 비교할 때는 이중 &&, ||를 사용하세요.

challenge icon

챌린지

쉬움

벡터화된 NOT 연산자(!)를 &|과 함께 사용하여 복잡한 요소별 논리 조건을 만드세요.

다음 벡터가 제공됩니다:

scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

NOT 연산자를 포함한 벡터화된 논리 연산자를 사용하여 다음 논리 벡터를 만드세요:

  1. 60 이상이 아닌 각 점수에 대해 TRUE를 저장하는 failed라는 벡터를 만드세요.
  2. attended의 반대값(각 값을 반전)을 저장하는 absent라는 벡터를 만드세요.
  3. 출석하지 않았거나 또는 숙제를 제출하지 않은 각 학생에 대해 TRUE를 저장하는 at_risk라는 벡터를 만드세요.
  4. 점수가 60 이상이고 또한 출석하지 않은 각 학생에 대해 TRUE를 저장하는 passing_but_absent라는 벡터를 만드세요.
  5. 다음 조건에 해당하는 각 학생에 대해 TRUE를 저장하는 needs_support라는 벡터를 만드세요: (점수가 50 미만) 또는 (출석하지 않았고 또한 숙제를 제출하지 않음)

print() 함수를 사용하여 failed, absent, at_risk, passing_but_absent, needs_support를 정확히 해당 순서로 표시하세요.

직접 해보기

# 주어진 벡터
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

# TODO: 아래에 코드를 작성하세요
# 1. 'failed' 생성 - scores가 NOT >= 60인 경우 TRUE

# 2. 'absent' 생성 - attended의 반대

# 3. 'at_risk' 생성 - NOT attended OR NOT submitted homework

# 4. 'passing_but_absent' 생성 - score >= 60 AND NOT attended

# 5. 'needs_support' 생성 - (score < 50) OR (NOT attended AND NOT submitted homework)

# 결과 출력
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 R 컴파일러