Removing duplicate rows in a dataframe is relatively easy. However, removing duplicate elements of a row within a data frame is a more challenging issue.
Let's start with this df:
df <- structure(list(V1 = c("B1182", "B1182", "B1182", "B1182", "B1182",
"B1182", "B1182", "B1182", NA, NA, "B1182", "B1182", "B1182",
NA, NA, NA, NA, "P2000", "P2000", NA), V2 = c("B124D", "B124D",
"B124D", "B124D", "B124D", "B124D", "B124D", "B124D", NA, NA,
"B124D", "B124D", "B124D", NA, NA, NA, NA, "P2000", "P2000",
NA), V3 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, "U3003", "U3003", NA), V4 = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "P2000",
"P2000", NA), V5 = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_), V6 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), V7 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_),
V8 = c(NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
)), .Names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7",
"V8"), row.names = c(NA, 20L), class = "data.frame")
This is the output of df:
V1 V2 V3 V4 V5 V6 V7 V8
1 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
2 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
3 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
4 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
5 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
6 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
7 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
8 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
10 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
11 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
12 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
13 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
14 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
15 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
16 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
17 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
18 P2000 P2000 U3003 P2000 <NA> <NA> <NA> <NA>
19 P2000 P2000 U3003 P2000 <NA> <NA> <NA> <NA>
20 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
As you can see, rows 18 and 19 contain duplicate codes (P2000). I would like to remove these duplicate elements and keep only the first that appears in the row. Notice that this is an extract of my original df so that it must be applicable to all the situations.
The expected output might be like this:
V1 V2 V3 V4 V5 V6 V7 V8
1 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
2 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
3 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
4 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
5 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
6 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
7 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
8 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
10 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
11 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
12 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
13 B1182 B124D <NA> <NA> <NA> <NA> <NA> <NA>
14 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
15 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
16 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
17 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
18 P2000 <NA> U3003 <NA> <NA> <NA> <NA> <NA>
19 P2000 <NA> U3003 <NA> <NA> <NA> <NA> <NA>
20 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
I don't care about the variables themselves, as they will be rearranged and transformed later.
So, how can I remove duplicate elements within a row in this df? Thanks in advance.