3
개체의 모든 값 (인접한 경우)이 인접한 정수 값인지 테스트하려고합니다. 예 :모든 값이 인접한 정수인지 확인 R
x <- c(1,2,3)
is.adjacent(x)
TRUE
y <- c(1,2,4)
is.adjacent(y)
FALSE
z <- c(4,2,1,3)
is.adjacent(z)
TRUE
좋은 접근 방법에 대한 의견이 있으십니까?
개체의 모든 값 (인접한 경우)이 인접한 정수 값인지 테스트하려고합니다. 예 :모든 값이 인접한 정수인지 확인 R
x <- c(1,2,3)
is.adjacent(x)
TRUE
y <- c(1,2,4)
is.adjacent(y)
FALSE
z <- c(4,2,1,3)
is.adjacent(z)
TRUE
좋은 접근 방법에 대한 의견이 있으십니까?
다음은 해결책입니다. 반복 정수 중 하나가 포함 된 벡터에 대해 TRUE
을 반환하도록 구성했습니다. 심지어 일부 반복됩니다 (예 : c(1,3,2,1,1,1)
). 이 경우 FALSE
을 반환하려면 unique()
이라는 부품을 제거하십시오.
is.adjacent <- function(X) {
all(diff(sort(unique(X))) == 1)
}
# Try it out
x <- c(1,2,3)
y <- c(1,2,4)
z <- c(4,2,1,3)
is.adjacent(x)
is.adjacent(y)
is.adjacent(z)
엄밀히 말하면, 당신은 또한 함수가 X'는 정수 벡터이다'여부를 테스트 할 것 (그래서 C (3.5, 4.5 '같은 것을, 2.5)'TRUE ''로 평가하지 않습니다) 하지만 그것은 솔루션에 추가하기에는 너무 성급한 것처럼 보입니다. –
감사합니다. 실제로 요소가 정수인지 먼저 테스트 한 (별도의) 함수가 있습니다. – mike