У меня есть 2 разных набора данных. Один из них (DF1) - это подмножество другого (DF2). Есть группа под названием Сампн. Я хочу удалить все элементы группы в более крупных наборах данных, если есть хотя бы одна строка из этой группы в меньших наборе данных.
Df2
SAMPN PERNO
1 1
1 2
1 3
2 1
2 3
3 3
3 4
3 5
4 1
4 3
Df1
SAMPN PERNO
1 1
2 1
2 3
Выход
SAMPN PERNO
3 3
3 4
3 5
4 1
4 3
Данные:
Df1:
structure(list(SAMPN = c(" 11", " 18", " 27", " 33",
" 33", " 39"), PERNO = structure(c(1L, 1L, 1L, 1L, 2L, 4L
), .Label = c("1", "2", "3", "4", "5", "6", "7", "8"), class = "factor")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
Df2:
structure(list(SAMPN = c(10, 10, 10, 11, 11, 11, 11, 12, 12,
12, 12), PERNO = c(2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2)), row.names = 90:100, class = "data.frame")
1 ответ
Вы можете отфильтровать все строки, где SAMPN
не в df2$SAMPN
, используя этот код:
library(tidyverse)
df1 <- df1 %>% mutate(SAMPN=as.numeric(SAMPN)) %>%
filter(!(SAMPN %in% df2$SAMPN))
Похожие вопросы
Связанные вопросы
Новые вопросы
r
R - это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, предоставьте минимальные и воспроизводимые примеры вместе с желаемым результатом. Используйте dput () для данных и укажите все небазовые пакеты с вызовами library (). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. По вопросам, связанным со статистикой, используйте https://stats.stackexchange.com.