Skip to menu

안녕하세요.

데이터 전처리하는데 어려움을 겪고있어 문의드립니다.

 

 

sample
abc
def(33.5412°, 127.5417°)
ghi(33.8654°, 127.7651°)


위 표와같은 데이터 프레임 org 를 "("를 기준으로 나누어 2개의 열(sample, location)로 만드려고 합니다.

 

--------------------------------------------------------------------------------

 

org_new <- data.table()

 

n <- nrow(org)

 

for(i in 1:n){

      

    sample <- as.character(org[i,])

      

    if(org[i,] != grep(intToUtf8(176), org$sample, value = T)){

      

      org_temp <- data.frame(sample) 

      org_temp2 <- mutate(org_temp, location = NA)

      

      org_new <- rbind(org_new, org_temp2)     

      

      

    }else { 

      

      org_split <- data.frame(str_split_fixed(sample, pattern = "\\(", n = 2)) 

      

      names(org_split) <- c("sample", "location")

      

      org_new <- data.frame(rbind(org_new, org_split))    

        

  }

  

}

 

--------------------------------------------------------------------------------

 

위의 코드를 작동시키면 아래 표와 같은 결과와 에러메시지가 뜹니다.

 

sample location
abc NA
def 33.5412°, 127.5417°)
ghi(33.8654°, 127.7651°) NA

 

  length > 1 이라는 조건이 있고, 첫번째 요소만이 사용될 것입니다.

 

 

sample location
abc NA
def 33.5412°, 127.5417°)
ghi 33.8654°, 127.7651°)

 

다음과 같이 아래에도 함수가 적용되려면 어떻게 수정해야 할까요...