r xlabel 빈 b 적용



tick size ggplot2 (1)

현재 R 언어 정의 문서에서 잘못 문서화되었을 수도 있습니다.

당신이 발견 한 것처럼, 그 행동은 묘사 된 것과 반대입니다. 귀하의 예제에서 v[1:length(v)] 사용하여 하위 집합을 만들면 v[] 에서 예상 한 동작이 발생합니다. 따라서 empty [] 는 변경되지 않은 속성을 반환하는 예외입니다.

답을 찾고 나는 커밋 / 코멘트를 발견했다. (diffs here : https://github.com/wch/r-source/commit/6b3480e05e9671a517d70c80b9f3aac53b6afd9d#diff-3347e77b1c102d875a744a2cd7fa86e5 ) 저자는 관찰 한 행동에 대해 설명한다.

서브 세트 (빈 인덱스 제외)는 일반적으로 @code {names}, @code {dim} 및 @code {dimnames}를 제외한 모든 속성을 삭제하며 적절하게 재설정됩니다. 한편, 부분 할당은 길이가 변경 되더라도 일반적으로 속성을 보존합니다. 강요는 모든 속성을 삭제합니다.

하위 집합 [] 이 비어 있으면 반환되는 개체는 단순히 원래 개체의 복사본이라고 생각합니다.

편집 (아래 코멘트에서) :

vv[] 의 속성이 다른 순서로 나타나는 이유는 빈 인덱스로 서브 세트하는 특별한 경우에 속성이 새 하위 세트에 할당되는 방식 때문일 가능성이 큽니다. 또한, 다른 순서는 속성이 순서를 가지고 있지 않기 때문에 버그로 간주되어서는 안됩니다. help(attributes) 참조하십시오. help(attributes) help(``[``) 에서 관찰 한 행동이 정확하게 기술되어 있습니다 당신이 참조한 언어 정의에서) 왜이 행동이 필요한지 설명합니다 :

빈 인덱스는 모든 값을 선택합니다.이 값은 항목을 모두 바꾸고 '특성'을 유지하는 데 가장 자주 사용됩니다. "

R 언어 정의 (버전 3.5.1 용)

표현식 x[]x 반환하지만 결과에서 "관련없는"속성을 제외시킵니다. names 과 다차원 배열 dimdimnames 속성 만 유지됩니다.

그러나 다음 예제를 고려하십시오.

v <- factor(c(dog = 1, cat = 3))
attr(v, "label") <- "feeling confused"
attributes(v)
# $`names`
# [1] "dog" "cat"
# 
# $levels
# [1] "1" "3"
# 
# $class
# [1] "factor"
# 
# $label
# [1] "feeling confused"
attributes(v[])
# $`names`
# [1] "dog" "cat"
# 
# $levels
# [1] "1" "3"
# 
# $label
# [1] "feeling confused"
# 
# $class
# [1] "factor"

속성 순서는 변경되지만 모든 속성 유지됩니다.

all.equal(attributes(v)[c(1,2,4,3)], attributes(v[]))
# [1] TRUE

내 사례가 면제되는 이유는 무엇입니까? 아니면 내가 뭘 놓치고 있니?





r