2017-02-14 8 views
-3

R을 배우고 있으며 separate() 함수의 사용을 복제하는 데 문제가 있습니다.분리 기능이 정확하게 구분되지 않습니다.

아래에 일부 데이터가 있습니다. 내 코드는 다음과 같습니다 : 여기

separate(DF, col ="PARAM_2",paste0("x",1:257),sep="|") 

는 원시 데이터의 샘플입니다

        PARAM_2 TRANSACTION_ID REVENUE 

1        16522337|10086236  3812351327 449.97 
2        21106549|24390750  3851589288 67.98 
3          23475149  3804446998 54.99 
4          19397324  3866373678 224.97 
5        23317326|23825351  3820764147 109.99 
6     20433128|20433140|20433165  4962022906 369.94 
7          19506902  3835040778 10.50 
8 24095014|25029701|24244086|24244271|16803155  3910007218 142.97 
9          24036073  3887666318 22.49 
10     19972354|14519726|18168381  3757376277 98.89 

내가 아주 확실하지 않다 왜하지만 코드 대신에 의해 구분의 행 당 하나 개의 문자를 배치합니다 | 분리 기호. 대신 구분 기호의 수는 각 행에 대해 다른 경우 수동으로 열 이름을 지정하는

 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 
    <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> 
1   1  6  5  2  2  3  3  7  |  1  0  0  8  6  2  3 
+2

않습니다 cSplit을 사용할 수 있습니다 : 여기 내 결함 코드를 사용하여 출력의 모습입니다 'sep' 매개 변수는 정규 표현식을 사용하므로 문자 그대로 의미하는 경우 파이프를 이스케이프해야합니다 :'sep = '\\ |''. 아니면 지정하지 마십시오. 그러면 파이프에서 분리됩니다. 또한 'split_rows'는 균등하지 않은 분할 수가있을 때 더 잘 작동합니다. – alistaire

+1

파이프 앞에 \\ 추가하여 고맙습니다. – Alan

답변

0

, 우리는이 자동으로

library(splitstackshape) 
cSplit(DF, "PARAM_2", "|") 
+1

감사합니다. 다음 번에 splitstackshape를 살펴볼 것입니다. 한 번에 하나씩 기본 R 기능을 파악하려고합니다. – Alan