0
I가 X찾기 숫자 소자 패턴의 R
x <- c(2, 28, 1, 31, 1, 10, 2, 1, 17, 4, 2, 5, 19, 6)
I 내로 2 또는 1이고, 변환 X이어서 동일하거나 이상 7 시간 사이 세 번 이상 진동이 번호를 찾을 이것이 사실 일 때를 반영하는 0과 1
oscillates_more_than_once
[1] 0 1 0 1 0 1 0 0 0 0 0 0 0 0
7의 번호
그 위의
은 4 측면에 선다 이하 나는이에 해당하는 경우 반영하기 위해 0과 1로 X를 변환 할.oscillates_once
[1] 0 0 0 0 0 0 0 0 1 0 0 0 0 0
그러나 숫자가 7을 초과하지만 5 이상인 경우 별도로 찾으시기 바랍니다.
flanked
[1] 0 0 0 0 0 0 0 0 0 0 0 1 1 1
이 문제를 해결하는 가장 좋은 방법은 패턴 일치입니까?
oscillates_more_than_once에서 시도해도 각 요소를 통과하지 않으므로 작동하지 않습니다.
if (length(x[x >= 7]) > 3) {
test <- as.numeric(x >=7)
lag.test <- c(tail(test,-1),NA)
for (w in 1:length(test)) {
if (!(as.numeric(test[w]==lag.test[w])) && as.numeric(test[w]==1)) {
as.numeric(x >= 7) ###converts all of x not just those elements that oscillate
}
else {
as.numeric(!(x))
}
}
}
한 번 확인하시기 바랍니다. 진동에 대해서는 잘 모르겠습니다. –