Tenho o seguinte quadro de dados que preciso classificar de uma maneira especÃfica. D1 e C1 estão vinculados, D2 e ​​C2 estão vinculados, D3 e C3 estão vinculados. Preciso que as colunas D1, D2 e ​​D3 contenham apenas um valor único, com seu C# na coluna C... respeitosamente.
X = structure(list(D1 = c("A", "A", "A", "A", "A", "B", "B", "B",
"B", "B", "C", "C", "C", "C", "C", "NA", "NA", "NA", "NA", "NA",
"NA", "NA", "NA", "NA", "NA", "B", "B", "B", "B", "B"), C1 = c("1",
"2", "3", "4", "5", "1", "2", "3", "4", "5", "1", "2", "3", "4",
"5", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA",
"1", "2", "3", "4", "5"), D2 = c("NA", "NA", "NA", "NA", "NA",
"A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C",
"C", "C", "A", "A", "A", "A", "A", "NA", "NA", "NA", "NA", "NA"
), C2 = c("NA", "NA", "NA", "NA", "NA", "1", "2", "3", "4", "5",
"1", "2", "3", "4", "5", "1", "2", "3", "4", "5", "1", "2", "3",
"4", "5", "NA", "NA", "NA", "NA", "NA"), D3 = c("B", "B", "B",
"B", "B", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA",
"NA", "A", "A", "A", "A", "A", "NA", "NA", "NA", "NA", "NA",
"NA", "NA", "NA", "NA", "NA"), C3 = c("1", "2", "3", "4", "5",
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "1",
"2", "3", "4", "5", "NA", "NA", "NA", "NA", "NA", "NA", "NA",
"NA", "NA", "NA")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-30L))
Meu formato de saÃda esperado é este:
Y = structure(list(D1 = c("A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "NA", "NA", "NA", "NA", "NA", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "NA", "NA", "NA", "NA", "NA"), C1 = c("1",
"2", "3", "4", "5", "1", "2", "3", "4", "5", "NA", "NA", "NA",
"NA", "NA", "1", "2", "3", "4", "5", "1", "2", "3", "4", "5",
"NA", "NA", "NA", "NA", "NA"), D2 = c("B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "NA", "NA",
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "B", "B", "B",
"B", "B"), C2 = c("1", "2", "3", "4", "5", "1", "2", "3", "4",
"5", "1", "2", "3", "4", "5", "NA", "NA", "NA", "NA", "NA", "NA",
"NA", "NA", "NA", "NA", "1", "2", "3", "4", "5"), D3 = c("NA",
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "NA", "NA", "NA", "NA",
"NA", "NA", "NA", "NA", "NA", "NA"), C3 = c("NA", "NA", "NA",
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "1", "2", "3", "4",
"5", "1", "2", "3", "4", "5", "NA", "NA", "NA", "NA", "NA", "NA",
"NA", "NA", "NA", "NA")), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -30L))
Você pode tentar pivotar e, em seguida, alterar os nomes usados ​​para pivotar de volta para o formato amplo com base nos valores de "D", o que parece gerar o resultado desejado. Mas primeiro, precisamos criar uma variável "id".
Dá: