Объединение таблицы данных об изобилии и таблицы метаданных в R - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю с двумя таблицами, разделенными табуляцией в R:

Таблица 1 : данные подсчета видов (строк) для нескольких выборок (столбцов)

SpeciesID   16Snem1 nem2    16Snem3 16Snem4
K00368  452.0   0.0 470.0   0.0
K00376  469.5   15.0    332.0   0.0
K00387  401.5   10.0    302.0   0.0

Таблица 2 : Метаданные, связанные с каждым образцом

SampleID    OceanRegion Habitat Depth
16Snem1 GulfofMexico    Seep    1000
16Snem2 GulfofMexico    Shore   1425
16Snem3 SouthernCalifornia  LopheliaSite    400
16Snem4 SouthernCalifornia  LopheliaSite    495

Мои вопросы:

  1. Каков наилучший способ merge или bindэти две таблицы в R?
  2. После объединения, как я могу построить данные подсчета на основе метаданных, таких как OceanRegion, Habitat и Depth, вместо того, чтобы строить каждый образец?

1 Ответ

0 голосов
/ 25 февраля 2019

Data.table apprach:

сначала растопите вашу первую таблицу в длинном формате, а затем выполните левое объединение таблицы 2.

library( data.table )
melt( dt1, id.vars = "SpeciesID", 
      measure.vars = patterns( "^16Snem" ), 
      variable.name = "SampleID" )[ dt2, `:=`( OceanRegion = i.OceanRegion,
                                               Habitat = i.Habitat, 
                                               Depth = i.Depth),
                                    on = "SampleID"][]

#     SpeciesID SampleID value        OceanRegion      Habitat Depth
#  1:    K00368  16Snem1 452.0       GulfofMexico         Seep  1000
#  2:    K00376  16Snem1 469.5       GulfofMexico         Seep  1000
#  3:    K00387  16Snem1 401.5       GulfofMexico         Seep  1000
#  4:    K00368  16Snem2   0.0       GulfofMexico        Shore  1425
#  5:    K00376  16Snem2  15.0       GulfofMexico        Shore  1425
#  6:    K00387  16Snem2  10.0       GulfofMexico        Shore  1425
#  7:    K00368  16Snem3 470.0 SouthernCalifornia LopheliaSite   400
#  8:    K00376  16Snem3 332.0 SouthernCalifornia LopheliaSite   400
#  9:    K00387  16Snem3 302.0 SouthernCalifornia LopheliaSite   400
# 10:    K00368  16Snem4   0.0 SouthernCalifornia LopheliaSite   495
# 11:    K00376  16Snem4   0.0 SouthernCalifornia LopheliaSite   495
# 12:    K00387  16Snem4   0.0 SouthernCalifornia LopheliaSite   495

Простое построение диаграмм не должно быть простым.

использованные образцы данных

library( data.table )

dt1 <- fread("SpeciesID   16Snem1 16Snem2    16Snem3 16Snem4
K00368  452.0   0.0 470.0   0.0
K00376  469.5   15.0    332.0   0.0
K00387  401.5   10.0    302.0   0.0")

dt2 <- fread("SampleID    OceanRegion Habitat Depth
16Snem1 GulfofMexico    Seep    1000
16Snem2 GulfofMexico    Shore   1425
16Snem3 SouthernCalifornia  LopheliaSite    400
16Snem4 SouthernCalifornia  LopheliaSite    495")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...