데이터 유형이 서로 다른 약 40 열의 데이터 프레임이 있습니다. 처음 15 열 정도의 고유 한 색인 역할을하는 변수가 있습니다. 이 열은 병합 된 관계형 데이터베이스이므로이 인덱스 변수에서 동일한 값을 갖는 모든 행이 동일해야합니다. 그러나 그들은 그렇지 않습니다. 오타가있는 곳을 찾고 싶습니다. 나는이 아주 간단한 예를했습니다대략적으로 평평하게 된 데이터 프레임에서 오타 (요소로 인해 불규칙한 행)를 찾습니다. R
는 :
structure(list(f = structure(c(1L, 2L, 3L, 3L, 4L, 5L, 6L, 6L,
7L, 7L), .Label = c("a", "b", "c", "d", "e", "f", "g"), class = "factor"),
number = c(1, 2, 3, 3, 4, 5, 6, 7, 21, 21), name = structure(c(1L,
2L, 4L, 3L, 5L, 6L, 7L, 7L, 8L, 8L), .Label = c("alfa", "beta",
"calostrE", "calostrO", "dedo", "elefante", "fiasco", "general"
), class = "factor")), .Names = c("f", "number", "name"), row.names = c(NA,
-10L), class = "data.frame")
은 다음과 같습니다
f number name
1 a 1 alfa
2 b 2 beta
3 c 3 calostrO
4 c 3 calostrE
5 d 4 dedo
6 e 5 elefante
7 f 6 fiasco
8 f 7 fiasco
9 g 21 general
10 g 21 general
f는 고유 인덱스입니다. 원래 데이터 프레임에서는 요인으로 변환 된 날짜이지만 그 것은 부적절합니다. 보시다시피 행 9와 10은 다른 변수 값이 모두 동일하기 때문에 올바릅니다. 요소 값 당 하나의 행만 있기 때문에 행 1,2,5 및 6도 정확합니다. 그러나 행 쌍 3-4와 7-8은 올바르지 않습니다. 오타가 있으며 변수가 동일하지 않은 경우가 있습니다. 도 보시다시피
Rows.with.typos..........Column.names
.....3......................."name"
.....7......................."number"
, 내가 인하에 문제가 :
는내가 원하는 결과는 다음과 같은 것입니다.
이 예제는 간단하지만 둘 이상의 열에 부등식 (오타)이있는 경우 최종 결과에 "열 이름"아래에 둘 이상의 요소가 있어야합니다. 필자의 원래 데이터 프레임은 꽤 넓고 많은 수의 열을 가지고 있으며, 일부만 f의 주어진 값에 대해 행별로 동일해야합니다.
명확화 : 선택한 행은 항상 그룹의 첫 번째 항목입니다 (아래 의견에 대한 내 답변 참조).
필자는 오타가있는 행을 얻을 수 있었지만 매우 복잡한 방식으로 게시하는 것이 좋지 않을 것이라고 생각합니다.
길모 7 행을 어떻게 잘못 선택했는지는 확실하지 않습니다. 숫자 나 이름 등에서 약간의 차이가있는 사람들의 첫 번째 행을 선택 하시겠습니까? – akrun
한 가지 방법은'by' 또는'dplyr'의'group_by' ('f' 컬럼에 그룹화)를'split '한 다음 *를 통해 서로 다른 컬럼에 대해'any' /'duplicated'를 테스트하는 것입니다 적용 '을 클릭하고 해당 열 이름을 반환하십시오. – hrbrmstr
또한 비교 대상은 무엇입니까? 각 그룹의 첫 번째 값은? 2 개가 동일하고 세 번째가 다른 그룹에서 두 개 이상의 값을 가진다면 어떤 일이 발생합니까? 어떤 것은 오타, 처음 두 개는 유사하거나 세 번째로 식별됩니까? –