У меня есть data.table в R, который мне нужно поднастроить на основе определенных условий
dt <- data.table(X_ID=c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4), Y_ID=c(1,2,3,4,5,6, 1,2,3,4,5,6, 1,2,3,4,5,6, 1,2,3,4,5,6), Value1=c(6,4,8,9,10,12,5,7,8,3,4,8,7,3,9,7,4,12,45,3,2,1,2,5),Value2=c(6,6,8,9,10,12,5,4,8,3,4,8,7,5,9,7,4,12,45,1,2,1,2,5))
Я хочу сохранить все X_ID, в которых значение 1 больше значения 2, когда Y_ID равен 2Например, для X_ID = 1 значение 1 больше значения 2, когда Y_ID = 2.В этом случае я хочу сохранить все строки с X_ID = 1.
В настоящее время я использую функцию фильтра (показанную ниже), чтобы найти решение.
dt2 <- filter(dt,is.na(match(dt$X_ID,filter(dt, Y_ID==2&Value1<Value2)$X_ID)))
Но есть ли способ сделать этот код более читабельным?Или использовать нечто родное для data.table для подстановки нужных мне строк?