Существует ли какой-то эквивалент inner_join для трехмерных массивов, и можно ли это сделать, соединяя 2d структуру с 3d структурой?
Давайте посмотрим, имеет ли это смысл:
У меня есть трехмерный массив целых чисел (данные подсчета микробиомов).
- Размер 1: копия 1: 100
- Размер 2: Образцы
- Размер 3: Таксоны
У меня есть 2d таблица метаданных.
- Размер 1: образцы
- Размер 2: тип метаданных (разведение, дата выборки и т. д. c)
Существует один столбец в 2-й таблице метаданных (имена образцов), который соответствует меткам второго измерения в массиве.
Могу ли я как-то объединить эти два, чтобы я сохранил структуру массива и добавил метаданные для каждого образца?
Нужно ли просто расплавить / сложить массив в супердлинную 2d таблицу ?
Спасибо за любую помощь!
-edit
Допустим, я сгенерировал массив a и "a" таблицу "b" со следующим кодом:
a <- array(1:10,c(2,4,3))
b <- data.frame("thing" = c("stuff", "foo", "dodad"), "data" = c(10,20,30), "match" = c("first","second","third"))
dimnames(a) <- list(c("A", "B"), c("one", "two", "three", "four"), c("first", "second", "third"))
Как видите, у меня есть столбец "match" в таблице "b", к которому я хотел бы присоединиться / сопоставить имена измерений a [[3]].
Так что если мы смотрим на «a» и «b»
> a
, , first
one two three four
A 1 3 5 7
B 2 4 6 8
, , second
one two three four
A 9 1 3 5
B 10 2 4 6
, , third
one two three four
A 7 9 1 3
B 8 10 2 4
> b
thing data match
1 stuff 10 first
2 foo 20 second
3 dodad 30 third
Я хотел бы, например, массив
, , third
one two three four
A 7 9 1 3
B 8 10 2 4
, чтобы элементы «dodad» и «30» были связаны с это с метками «вещь» и «данные».
Для реального набора данных я хочу иметь «имя пациента» вместо «вещь» и «разбавление» вместо «данные» и использовать эти элементы как средство для извлечения срезов из массива проводить статистический анализ.