So I have a similar problem to this question: Remove duplicate rows in R
In my case I would like to keep all of the columns (not like it was recommended to use unique
function on first 3 columns). I would like to take to the consideration only 2 columns from the data frame and keep only 1 row if the "values" in both mentioned columns are the same.
The data looks like:
structure(list(P1 = structure(c(1L, 1L, 3L, 3L, 5L, 5L, 5L, 5L,
4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L), .Label = c("Apple",
"Grape", "Orange", "Peach", "Tomato"), class = "factor"), P2 = structure(c(4L,
4L, 3L, 3L, 5L, 5L, 5L, 5L, 6L, 6L, 2L, 2L, 2L, 2L, 1L, 1L, 1L,
1L, 6L, 6L), .Label = c("Banana", "Cucumber", "Lemon", "Orange",
"Potato", "Tomato"), class = "factor"), P1_location_subacon = structure(c(NA,
NA, 1L, 1L, 1L, 1L, 1L, 1L, NA, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("Fridge", "Table"), class = "factor"),
P1_location_all_predictors = structure(c(2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L), .Label = c("Table,Desk,Bag,Fridge,Bed,Shelf,Chair",
"Table,Shelf,Cupboard,Bed,Fridge", "Table,Shelf,Fridge"), class = "factor"),
P2_location_subacon = structure(c(1L, 1L, 1L, 1L, NA, NA,
NA, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Fridge",
"Shelf"), class = "factor"), P2_location_all_predictors = structure(c(3L,
3L, 2L, 2L, 1L, 1L, 1L, 1L, 3L, 3L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L), .Label = c("Shelf,Fridge", "Shelf,Fridge,Bed",
"Table,Shelf,Fridge"), class = "factor")), .Names = c("P1",
"P2", "P1_location_subacon", "P1_location_all_predictors", "P2_location_subacon",
"P2_location_all_predictors"), row.names = c(NA, -20L), class = "data.frame")
The important columns for me are: P1
and P2
. I would like to keep only one of the rows which we can the same fruits/veggies. (remember that the fruits/veggies have to be the same in both columns):
Example:
before:
P1 P2 P1_location_subacon P1_location_all_predictors P2_location_subacon P2_location_all_predictors
1 Apple Orange <NA> Table,Shelf,Cupboard,Bed,Fridge Fridge Table,Shelf,Fridge
2 Apple Orange <NA> Table,Shelf,Cupboard,Bed,Fridge Fridge Table,Shelf,Fridge
3 Orange Lemon Fridge Table,Shelf,Fridge Fridge Shelf,Fridge,Bed
4 Orange Lemon Fridge Table,Shelf,Fridge Fridge Shelf,Fridge,Bed
5 Tomato Potato Fridge Table,Shelf,Fridge <NA> Shelf,Fridge
6 Tomato Potato Fridge Table,Shelf,Fridge <NA> Shelf,Fridge
7 Tomato Potato Fridge Table,Shelf,Fridge <NA> Shelf,Fridge
8 Tomato Potato Fridge Table,Shelf,Fridge <NA> Shelf,Fridge
After:
P1 P2 P1_location_subacon P1_location_all_predictors P2_location_subacon P2_location_all_predictors
1 Apple Orange <NA> Table,Shelf,Cupboard,Bed,Fridge Fridge Table,Shelf,Fridge
4 Orange Lemon Fridge Table,Shelf,Fridge Fridge Shelf,Fridge,Bed
5 Tomato Potato Fridge Table,Shelf,Fridge <NA> Shelf,Fridge
It doesn't matter which of the rows it will keep. That can be randomly selected.