Я использовал full.joint для объединения двух таблиц:
fsts = full_join(fstvarcal, fst, by = "SNP")
И это имело эффект группировки 1-ых строк, для которых были значения для двух наборов данных, за которыми следовали строки, для которых былизначения только для 1-го набора данных (и NA для 2-го), за которыми следуют строки, для которых были значения только для 2-го набора данных (и NA для 1-го).
Я сейчас пытаюсь заказать по естественному порядку .
Ищите эквивалент sort -V -k1
в bash.
Я пробовал:
library(naturalsort)
;
fstordered = fsts[naturalorder(fsts$SNP),]
, который работает, но он очень медленный.
Есть ли более быстрые способы сделать это?Или слияния двух наборов данных без потери естественного порядка?
У меня есть:
SNP fst
scaffold_0 0.186473
scaffold_9 0.186475
scaffold_10 0.186472
scaffold_11 0.186470
scaffold_99 0.186420
scaffold_100 0.186440
и
SNP fstvarcal
scaffold_0 0.186472
scaffold_8 0.186475
scaffold_20 0.186477
scaffold_21 0.186440
scaffold_999 0.186450
scaffold_1000 0.186420
и я хочу объединиться в
SNP fstvarcal fst
scaffold_0 0.186472 0.186473
scaffold_8 0.186475 NA
scaffold_9 NA 0.186475
scaffold_10 NA 0.186472
scaffold_11 NA 0.186470
scaffold_20 0.186477 NA
scaffold_21 0.186440 NA
scaffold_99 NA 0.186420
scaffold_100 NA 0.186440
scaffold_999 0.186450 NA
scaffold_1000 0.186420 NA