2014-04-29 3 views
1

두 개의 주요 문제가 R 프로그램에서 해결 되려고합니다.R 행렬 구조 - 조작 문제

먼저 다른 변수 (열)의 값을 다른 개인 (행)에 저장하기 위해 일종의 매트릭스 구조를 만들어야합니다.

주요 문제는 각 쌍의 행 - 열에 시계열의 형태로 관찰 벡터가 있어야한다는 것입니다. 서로 다른 변수의 시계열은 순차적 인 시간에 샘플링되지 않기 때문에 다른 시계열은 일정하지 않습니다.

나는 매트릭스의 항목에 액세스 키와 rownames에게COLNAMES를 사용하여 생각 해요.

이것이 내가 필요한 것에 가장 적합한 지 모르겠다. 데이터 프레임을 사용하고 있었지만 많은 양의 데이터 (데이터 스트림)를 저장해야하므로 매트릭스로 이동하라는 제안이있었습니다.

답변

4

목록에 개별 시계열 (예 : l)을 저장하고 dim 속성을 설정할 수 있습니다. dimnames (행 이름과 열 이름)도 설정할 수 있습니다. 이 행렬 거의 것처럼 그것으로 당신은 지금/data.frame

# Generate length 15 vectors for 10 subjects 
l <- replicate(10, list(rnorm(15))) 
dim(l) <- c(5, 2) 
dimnames(l) <- list(subject=1:5, variable=c("a", "b")) 
l 
##  variable 
## subject a   b   
##  1 Numeric,15 Numeric,15 
##  2 Numeric,15 Numeric,15 
##  3 Numeric,15 Numeric,15 
##  4 Numeric,15 Numeric,15 
##  5 Numeric,15 Numeric,15 

를 사용할 수 있습니다 수행 할 수 있습니다

l[[1,1]] # time series for subject 1, var 1 
## [1] -0.02425 0.88986 0.36260 -1.78774 -1.48874 -1.46750 0.38329 
## [8] 0.18573 -1.65675 0.59374 0.81669 1.06867 -1.71847 0.81889 
## [15] 0.10796 

또는

l[[2, "b"]] # time series for subject 2, var "b" 
## [1] 0.45616 -0.67563 -1.42116 -0.42621 0.51648 0.35147 0.68243 
## [8] 1.17581 -0.16696 0.77492 -1.76446 1.50580 0.06075 0.37734 
## [15] -0.92797 

등 ...

+0

+1 실수로리스트를 포함하고있는 매트릭스를 만들었지 만, 의도적으로리스트를 만들 때, 나는 기존의리스트에'어둡게 '설정하지 않을 생각입니다. – jbaums

+0

'l [[2, 'b']]'는 두번째 _row_에 대한 변수'b'를 가리킨다는 것에주의하십시오. @ Michal의 예에서 이것은 또한 주제 2이지만 주제가 순서가 맞지 않거나 어떤 것이 빠져있는 경우 이것은 그렇지 않을 수도 있습니다. 이 예제에서'l [[ '2', 'b']]'는 변수'b'에'l'을 서브 세트하고 이름'2 '로 행을 서브 세트합니다. – jbaums