У меня есть таблица чисел со многими, различающимися значащими цифрами.Мне нужно найти точные совпадения для этих цифр по столбцам - например,
find_mz_matches <- data.frame("mz1" = c(3.14222, 314.12003, 214.220,
254.111223, NA, NA, NA, NA, NA), "mz2" = c(3.14222, 456.2200001, NA,
NA, NA, NA, NA, NA, NA), "mz3" = c(300.112223, 456.2200001, 3.14222,
254.111223, 900.232, 476.0012503, 459.00201, 500.60402, 300.4053102))
Я хочу знать, какие значения распределяются между mz1 и mz2, mz2 и mz3 и, наконец, между всеми тремя столбцами вместе.
Итак, сравнение mz1 и mz2 должно дать:
mz1_v_mz2
3.14222
456.2200001
И сравнение всех трех:
mz_all
3.14222
Я собрал что-то, что почти работает, но проблема в том, чтоон где-то округляется, и мои выходные данные включают числа, которые похожи, но не совпадают, например, 3.14222 не должен совпадать с 3.14223.Он также включает NA в вывод, что нежелательно.
duplicates_across1 <- find_mz_matches[find_mz_matches$mz1
%in% find_mz_matches$mz2, ]
Это должно сработать для сравнения первых двух столбцов, поэтому я решил, что просто возьму выходные данные и сделаю это снова для следующего сравнения - сравните выходные данные duplicates_across1 с find_mz_matches $ mz3.По некоторым причинам, он не улавливает наличие 3.14222 между всеми тремя столбцами, и я понятия не имею, почему.
duplicates_all <- duplicates_across1[duplicates_across1$mz1
%in% find_mz_matches$mz3, ]