У меня проблема с подмножеством значений массива.Извлечение значений массива на основе значений в разных измерениях
raw.table <- array(data = c(1:12,13:24,rep(1:6, each=2)),
dim=c(3,4,3),
dimnames=list(LETTERS[1:3],1:4,c("target","ctrl","samples")))
Первые два аспекта моего массива представляют некоторые значения, которые я хочу сделать статистику, и более высокие размеры содержат различные атрибуты, которые я хочу использовать для доступа к определенным подмножеств. В этом случае у меня есть только номера образцов, тогда как всегда есть два значения, присвоенные одному и тому же номеру выборки (репликации измерений).
, , target
1 2 3 4
A 1 4 7 10
B 2 5 8 11
C 3 6 9 12
, , ctrl
1 2 3 4
A 13 16 19 22
B 14 17 20 23
C 15 18 21 24
, , samples
1 2 3 4
A 1 2 4 5
B 1 3 4 6
C 2 3 5 6
Как получить доступ к значениям в размерности 1 (= мишень), которые имеют один и тот же номер образца, обозначенный в размерности 3 (= образцов)? Я опробовал различные подходы, используя unique(), duplicated() и match(), но не придя к результату. Я просто не могу обернуть мою голову об индексации массивов -.-
Приветствия, zuup
Каков ваш ожидаемый выход? Возможно, 'which (raw.table [,, 1] == raw.table [,, 3])' – akrun
Мой желаемый результат был бы вектором двух значений в 'raw.table [,, 1]', которые соответствуют тот же номер образца в 'raw.table [,, 3]'. Поэтому я не хочу сравнивать значения разных измерений (см. Ваш ответ), а скорее сравнивать внутри одного измерения и использовать результат для индексирования значений в другом измерении. – Zuup
Я понимаю это, но я думаю, у вас есть только два элемента для сравнения, например, «target» и «samples» или есть что-то, чего мы не знаем. – akrun