У меня есть таблица, которая выглядит следующим образом:Найти подходящее значение в таблице на основе значения столбца
[1,] 1 6 8 0.09457250 0.09457250 0.09457450 0.09457250 0.094572200 0.094572200
[2,] 1 3 7 0.04620798 0.04620798 0.04620998 0.04620798 0.046207681 0.046207681
[3,] 2 5 4 0.00160710 0.00160710 0.00160710 0.00160710 0.001607281 0.001607281
[4,] 6 6 8 0.09457250 0.09457250 0.09457450 0.09457250 0.094572200 0.094572200
[5,] 7 3 7 0.04620798 0.04620798 0.04620998 0.04620798 0.046207681 0.046207681
[6,] 12 5 4 0.00160710 0.00160710 0.00160710 0.00160710 0.001607281 0.001607281
[1,] 0.0945722 0.0945722 0.0945722 0.5171163 0.5171163 0.5171168 0.5171168
[2,] 0.9078313 0.5171163 0.5171163 0.5171163 0.4969045 0.4969050 0.4969050
[3,] 0.0016076 0.0016076 0.0016076 0.0016076 0.0016078 0.0016083 0.0016083
[4,] 0.0945722 0.0945722 0.0945722 0.5171163 0.5171163 0.5171168 0.5171168
[5,] 0.9078313 0.5171163 0.5171163 0.5171163 0.4969045 0.4969050 0.4969050
[6,] 0.0016076 0.0016076 0.0016076 0.0016076 0.0016078 0.0016083 0.0016083
[1,] 0.5171168 1.7740327 1.7740327 1.3879578 1.0062008 1.0062010 1.0062010
[2,] 0.4969050 0.4969109 0.4969109 0.4969050 0.4969050 0.4969050 1.0062010
[3,] 0.0016083 0.0016142 0.0016142 0.0016083 0.0016083 0.0016083 0.0016073
[4,] 0.5171168 1.7740327 1.7740327 1.3879578 1.0062008 1.0062010 1.0062010
[5,] 0.4969050 0.4969109 0.4969109 0.4969050 0.4969050 0.4969050 1.0062010
[6,] 0.0016083 0.0016142 0.0016142 0.0016083 0.0016083 0.0016083 0.0016073
Для целей расчета первые 3 колонки можно пренебречь. Но в первом столбце хранится важная информация. Если значение равно 12, это означает начало в столбце 12 (если первые 3 столбца не учитываются) или столбец 15, если они берутся на учетную запись и выглядят внутри этой строки (строка 6 в этом случае) справа и слева (строки6 , столбец 12) для растяжения значений, которые находятся в пределах значения 10e-5 (плюс или минус). Важно отметить результат:
column1 column2 column3 StartofStretch End of Stretch
12 5 4 1 20
, где столбец 1,2,3 - это первые первые 3 колонки. Было бы важно, чтобы оно устойчиво к числу приходит через некоторое время/ранее в последовательности (в толерантности 1e5) Чтобы решить эту проблему, я раньше пытался
f <- function(x){
v <- x[4:length(x)]
m <- which(v == v[x[1]])
return(c(start=min(m),stop=max(m)))
}
q <-cbind(p[,1:3],t(apply(p,1,f)))
Однако это не учитывает толерантности я говорил и он не обязательно учитывает, появляется ли число после окончания растяжки (в случае, если есть растяжение вокруг столбца 12 или около того 2 справа и слева, а затем тот же номер появляется 7 или 8 или около того столбцов справа от растяжения этот метод будет просто учитывать крайности, когда такое значение будет наблюдаться.
EDIT
Таким образом мой небольшой набор данных шкалы
t
[1,] 1 23 20 0.008352330 0.008352572 0.008352330 0.008352330 0.008351730
[2,] 1 17 28 0.020770380 0.020770622 0.020770380 0.020770380 0.020769780
[3,] 1 4 12 0.006003570 0.006003812 0.006003570 0.006003570 0.006002970
[4,] 1 11 13 0.005008098 0.005008340 0.005008518 0.005008518 0.005007918
[5,] 1 3 10 0.006530800 0.006531042 0.006530800 0.006530800 0.006531300
[6,] 1 19 22 0.003711100 0.003711342 0.003711100 0.003711100 0.00371160
the output of lukeA's script
t lower upper expedected lower expectupper
[1,] 1 23 20 1 1 1 5
[2,] 1 17 28 1 5 1 4
[3,] 1 4 12 1 4 1 5
[4,] 1 11 13 1 2 1 5
[5,] 1 3 10 1 5 1 5
[6,] 1 19 22 1 4 1 5
который не верен, как в строке 3 (для иллюстрации) разницы между колоннами 7 и 8 -6times10to мощности минус 7, который должен затем быть в диапазоне. ... что я неправильно понял? Также в строке 1, если чувствительность соответствует 4-значному значению после запятой, тогда столбцы 3 и 4 (или 1 и 2, если вы не считаете первые три, как на выходе) должны быть одинаковыми?
кто-то может указать, Что не ясно? – user3069326
В чем вопрос? Что ты пытаешься сделать? Какие важные заметки? Что вы пробовали? Тогда будет легче ответить на что-то – Llopis
Это действительно о шаблоне соответствия из столбца 12 (в данном случае) – user3069326