Сопоставление реплицируемых данных - PullRequest
0 голосов
/ 01 апреля 2019

Я предоставил примерный набор данных, который я упорядочил в формате столбца (называемый «full.table»).

Эти данные были извлечены из 96-луночного планшета для ПЦР, и, собирая мои данные, я всегда проводил повторный эксперимент, что означает, что каждая переменная (или тест) имеет 1 повтор. Я хотел бы взять все реплики и сопоставить их (чтобы они были рядом), что позволило бы мне легко визуализировать реплики рядом друг с другом, и, наконец, вычислить среднее значение для переменной "Cq" между ними.

Осложнения связаны с проведением нескольких тестов в течение нескольких дней (первое осложнение), а НЕ с тем, чтобы мои образцы всегда выполнялись одинаково на планшете для ПЦР (второе осложнение). Как правило, как вы видите на моем наборе данных ниже, в скважине А1 имеется дубликат в скважине В1, однако это не всегда так. Иногда скважина A7 соответствует скважине A8 (а не B7).

Реплики всегда запускались в один и тот же день, поэтому важной переменной здесь является «дата», которую я добавил через R перед загрузкой в ​​Stack Exchange. Я запутался в том, как изменить порядок данных, чтобы получить желаемый результат (даже не уверен, с чего начать)

В конце я привел пример того, что мне бы хотелось, под названием «sample.finished.table»

Логически, имея в этом примере 768 наблюдений, это должно разделить его на две части, что приведет к 384 строкам данных (385 с заголовком)

Я ценю любые отзывы. Спасибо

full.table<- read.table("https://pastebin.com/raw/kTQhuttv", header=T, sep="")

sample.finished.table <- read.table("https://pastebin.com/raw/Phg7C9xD", header=T, sep="")

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете использовать dplyr здесь для группировки по выборке и извлечения запрошенных значений:

library(dplyr)
full.table %>% group_by(sample,date) %>% summarise(
Well1 = first(Well), Cq1 = first(Cq),
Well2 = last(Well), sample1 = last(sample), Cq2 = last(Cq), Cq_mean = mean(Cq[Cq > 0]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...