Добро пожаловать в R!
Причина, по которой ваш код не работает должным образом, заключается в том, что первые четыре строки в вашем скрипте присваивают векторы.Это будет хорошо работать, если вы используете подмножество base
R (попробуйте ?'['
на консоли) и выполняете логические тесты в столбцах как векторы.
dplyr работает несколько иначе.Метафора ближе к SQL, рассматривая каждый «столбец» в наборе данных как поле SQL.Таким образом, вы можете работать с вашими переменными напрямую, не разбивая их на векторы.
Попробуйте:
dataset1 %>% filter(Upper_Depth > TopMD & Lower_Depth < BaseMD)
Это должно дать вам dataset
, отфильтрованный так, чтобы каждое условие оценивалось какTRUE
.
Если вы хотите сохранить результаты, просто назначьте их левой кнопкой мыши так:
full_data <- dataset1 %>% filter(Upper_Depth > TopMD & Lower_Depth < BaseMD)
Надеюсь, это поможет!