2013-10-03 1 views
1

텍스트 파일에 18 개의 열과 1180598 개의 행이있는 NGSim 트래픽 데이터를 작성하고 있습니다. 'Local Y'열의 위치 데이터를 부드럽게하고 싶습니다. R에 데이터 스무딩을위한 내장 함수가 있지만 그 중 아무 것도 내가 적용해야하는 수식과 일치하지 않는 것 같습니다. 텍스트 파일의 데이터는 다음과 같습니다.R에서 데이터 잡음을 제거하기위한 공식을 적용하는 방법?

Index VehicleID Total_Frames Local Y 

    1 2 5 35.381 
    2 2 5 39.381 
    3 2 5 43.381 
    4 2 5 47.38 
    5 2 5 51.381 
    6 4 8 504.828 
    7 4 8 508.325 
    8 4 8 512.841 
    9 4 8 516.338 
    10 4 8 520.854 
    11 4 8 524.592 
    12 4 8 528.682 
    13 4 8 532.901 
    14 5 7 39.154 
    15 5 7 43.153 
    16 5 7 47.154 
    17 5 7 51.154 
    18 5 7 55.153 
    19 5 7 59.154 
    20 5 7 63.154 

위의 데이터 열은 원본 파일에서 가져온 예제입니다. 여기에서는 차량 ID가 2, 4 및 5 인 차량 3 대를 볼 수 있지만 IDS가 다른 2169 대의 차량이 있습니다. Total_Frames 열은 첫 번째 열에서 각 차량의 차량 ID가 몇 번 반복되었는지를 알려줍니다 (예 : 위 표에서 차량 ID 2는 5 회 반복되므로 Total_Frames 열에서 '5'). 다음은 '로컬 Y'열의 데이터 노이즈 (평활화)를 제거하는 데 적용해야하는 공식입니다.

평활화 위치 값 = (1/(k의 [EXP^-abs (ik)/delta) 합계 = I 이드 + D)) * ((로컬 Y의 (액수) EXP^-abs (IK)/델타] I에 K에서 ID = + D))

,

I = 인덱스 # 델타 = 5 D = 15

내가 알고있는 내장 함수를 사용해 보았지만, 필요에 따라 데이터를 부드럽게하지 못했습니다. 내 질문은 : 주어진 수식의 방식으로 데이터를 다듬을 수 또는이 수식을 인수로 걸릴 수있는 R에 기본 제공 함수가 있습니까? 나는 동일한 차량 ID에 대해 15 개의 값과 15 개의 값 (i-D 및 i + D)을 가진 Local Y의 모든 값에 수식을 적용해야합니다. 아무도 내게 문제에 접근하는 방법을 알 수 있습니까? 미리 감사드립니다.

+3

이 질문에 유래에 더 적합한 당신의 "로컬 Y"열에서 요소에 적용하기 위해 R의 적용 기능을 사용할 수 있습니다. 스무딩 기능을 올바르게 읽으면 합계가 취소되고 '로컬 Y'만 남아 있습니다 (최상위 괄호를 삭제할 수 있음을 알 수 있음). 어딘가에 오류가 있습니까? 또한 기존의 R 기능에는 어떤 것이 있습니까? – amon

답변

0

당신은 함수에 수식을 배치하고 dataframe

+0

답변 해 주셔서 감사합니다. 적용 함수를 사용할 수는 있지만 알 수 있듯이 모든 차량 ID에 대해 처음과 마지막 15 개의 값을 제외한 모든 지역 Y 값에 수식을 적용해야합니다. 위에 제공된 예제에서 모든 차량 ID (2,4,5)에 대해 처음 두 값과 마지막 두 값을 남겨두고 모든 로컬 Y 값에 공식을 적용하려면 어떻게해야합니까? –