한국어 제목: 속성의 복사

한국어 제목: 속성의 복사

객체를 변경할 때 속성을 어떻게 처리해야 하는지는 꽤 복잡한 주제인데, R에는 몇 가지 일반적인 규칙이 있어요. 이번에는 그 규칙들을 차근차근 살펴볼게요.

출처: 문서

본문

2.2.6 속성의 복사

객체가 변경될 때 속성을 복사해야 하는지의 문제는 복잡한 영역이지만, 몇 가지 일반적인 규칙이 있어요(Becker, Chambers & Wilks, 1988, pp. 144–6).

스칼라 함수, 즉 벡터의 각 원소에 대해 하나씩 적용되고 출력이 입력과 비슷한 성격을 가지는 함수는 속성을 보존해야 해요. 다만 class는 예외일 수 있어요.

이항 연산은 대개 두 인자 중 더 긴 인자의 속성을 대부분 복사해요. 만약 두 인자의 길이가 같다면 첫 번째 인자의 속성 값을 우선해요. 여기서 '대부분'이란 names, dim, dimnames를 제외한 모든 속성을 의미하며, 이 세 가지 속성은 연산자 코드에 의해 적절히 설정돼요.

부분집합(subsetting)은 빈 인덱스가 아닌 경우 일반적으로 모든 속성을 버려요. 다만 names, dim, dimnames는 상황에 맞게 다시 설정되면서 유지돼요. 반면에 부분 할당(subassignment)은 길이가 변경되더라도 일반적으로 속성을 보존해요. 강제 변환(coercion)은 모든 속성을 버려요.

정렬(sorting)의 기본 메서드는 names를 제외한 모든 속성을 버려요. names는 객체와 함께 정렬돼요.

더 알아보기 (Learn more)

출처: R Language Definition - 속성의 복사