2017-12-01 23 views
0

이므로 중복 된 열 이름이 포함 된 Excel 파일을로드했습니다. 열 이름이 반복 될 때마다 접미사를 추가하고 싶습니다. 따라서 :고유 한 중복 열 이름이 R

problem_df <- data.frame(A = rep(1, 5), B = rep(2, 5), A = rep(3, 5), B = rep(4, 5), A = rep(5, 5)) 
solution_df <- data.frame(A = rep(1, 5), B = rep(2, 5), A_1 = rep(3, 5), B_1 = rep(4, 5), A_2 = rep(5, 5)) 

또는 열 이름 접미사는 '_2'및 '_3'이 될 수 있습니다.

답변

2

우리는 make.unique와 함께 할 수있는 또한 data.frame 호출은 make.unique를 호출하고 기본적으로 sepmake.names를 호출 check.names = TRUE를 사용하고, 우리의 'problem_df'에서 sep 인수

make.unique(c("A", "B", "A", "B", "A"), sep="_") 
#[1] "A" "B" "A_1" "B_1" "A_2" 

.. data.frame 의하면에서

, 그것은 124

if (check.names) { 
    if (fix.empty.names) 
     vnames <- make.names(vnames, unique = TRUE) ### 
    else { 
     nz <- nzchar(vnames) 
     vnames[nz] <- make.names(vnames[nz], unique = TRUE) ### 
    } 
} 
names(value) <- vnames 

한 옵션 check.names = FALSE을 사용하고 make.uniquesep="_"

problem_df <- data.frame(A = rep(1, 5), B = rep(2, 5), A = rep(3, 5), 
     B = rep(4, 5), A = rep(5, 5), check.names = FALSE) 
names(problem_df) <- make.unique(names(problem_df), sep="_") 

와 열 이름을 할당하는 라인부터 시작 코드 블록에

또는 sub을 사용하여 데이터 집합 개체가 .\\d+은 중복 이름의 열 이름으로