2016-07-18 2 views
2

나는 150 스톱 (대구)을 가지고 있으며 이것 하나 하나에 여러 가지 서비스가 있습니다.행의 정보를 R의 한 열로 변환하는 방법은 무엇입니까?

|  Cod | SERVICE1 | SERVICE2 | SERVICE3 | Position 
------------------------------------------------------ 
| P05  |  XRS10 |  XRS07|  XRS05| 12455 
| R07  |  FR05 |   |   | 4521 
| X05  |  XRS07 |  XRS10|   | 57541 

나는 하나의 열에서 모든 서비스 (SERVICE1, 서비스 2, 서비스 3)을 넣어해야합니다. 즉, 다음 결과가 필요합니다.

|  Cod | SERVICE | Position 
------------------------------------------------------ 
| P05  |  XRS10 | 12455 
| P05  |  XRS07 | 12455 
| P05  |  XRS05 | 12455 
| R07  |  FR05 | 4521 
| X05  |  XRS07 | 57541 
| X05  |  XRS10 | 57541 

R.의 sqldf 패키지 또는 그것을 할 수있는 방법의 어떤 종류를 사용하여이 작업을 수행 할 수있는 방법이 있습니까?

+0

아마도 데이터의 [reproducible example] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)을 포함시켜 주시겠습니까? 아마도'dput ()'? – BarkleyBG

답변

1

이 시도 : 불행하게도

library(magrittr) ##used for the pipe, %>% 
library(dplyr) ##for filtering observations and selecting columns 
library(tidyr) ##for making your dataset long/tidy 

new_data <- original_data %>% 
tidyr::gather(key = service_type, value = SERVICE) %>% 
dplyr::filter(!is.na(SERVICE)) %>% 
dplyr::select(-service_type) 

내가 sqldf

주에 익숙하지 않은 나는 당신이 서비스가 SERVICE1, SERVICE2, 또는 SERVICE3에서 제공 여부에 대한 정보를 유지하려는 경우, 당신은거야 그 마지막 행 (dplyr::select)을 완전히 생략하십시오.

관련 문제