2013-08-21 5 views
0

I 필요한 도움말 변형을 실행 적용 :변환 R 데이터 프레임 - R</strong>에 <strong>데이터 프레임 다음 중간

----------------------------------- 
| ID | x_1 | x_2 | ... | x_m | 
|---------------------------------| 
| id_1 | x_11 | x_12 | ... | x_1m | 
|---------------------------------| 
|    ...    | 
|---------------------------------| 
| id_n | x_n1 | x_n2 | ... | x_nm | 
----------------------------------- 

I이 한 ID 열 및 m 측정 (X_1 - x_m) N 실험에서 획득. 각 실험/행에 대해을 실행하는 을 사용하여 m 개의 측정 값을 매끄럽게 만들고 싶습니다.

R에서 이러한 변환을 수행하는 쉬운 방법이 있습니까?

답변

3
library(zoo) 
apply(dfrm[-1], 1, rollmedian, k=5) 

OR :

cbind(dfrm[1], as.dataframe(apply(dfrm[-1], 1, rollmedian, k=5))) 
+0

이 솔루션은 작동합니다. 그러나 데이터 프레임은 보존되지 않습니다. 출력은 행렬입니다. 데이터 프레임을 변경하지 않고 값을 업데이트하는 솔루션을 찾고 있습니다. – cel

+0

"데이터 프레임 보존"? 당신은 R을 배우는데 적합하지 않은 컴퓨팅 모델로 작업 할 것입니다. 일반적으로 R은 객체를 수정하지 않습니다. 함수의 출력을 항상 기존 이름에 지정할 수 있습니다. 나는 그것이 다소 위험하고 새로운 물건에 그들 자신의 이름을주는 것을 선호하는 것을 안다. –

+0

내 대답이 혼란 스럽다면 죄송합니다. 내가 게시 한 두 번째 솔루션을 찾고있었습니다. 감사! 그러나 적용 함수에서 가져온 행렬은 전치해야합니다. – cel

2

DWIN의 대답 @를 유사하지만 통계?runmed 사용 :

apply(dfrm[-1], 1, runmed, k=5)