2016-08-05 2 views
0

에서 행렬의 목록을 작성, 나는 ... X_1, X_2, X_3을 표시하는 행렬의 목록을 생성 한 등은 루프를 사용하여 R

지금 일련의 기능을 실행하는 것을 시도하고있다

for (i in matrices) { 
      df <- count(i) 
      df$count <- df$freq 
      df$freq <- df$count/nrow(i) #freq = pi in H1 equation 
      for (j in names){ 
      assign(paste("hap",j,sep="."), df)  
      } 
     } 

I은 ​​서열 스크립트를 사용하여 매트릭스들의 목록을 생성하려고 : 각 행렬 및 I는 루프 다른 쓴

출력 결과
matrices <- (paste("X",seq(1,nrow(windows)), sep="_")) 

"X_1" "X_2"을 " X_3 ""X_4 ""X_5 " 이것은 목록이지만 문자 목록 일 뿐이며 실제로 행렬을 참조하지 않습니다.

matrices <- list(X_1, X_2, X_3, X_4, X_5, ...) 

을하지만이 그래서 난 대규모 데이터 세트에 스크립트를 적용 할 수있는 자동화 기대했다 : 내가 수동 매트릭스 이름 목록에 입력하면 작동하는 것 같다. 내가 처음 스크립트로 같은 일을 얻을

matrices <- list(paste("X",seq(1,nrow(windows)), sep="_")) 

이러한 결합하려고하면 "X_1" "X_2" "X_3" "X_4" "X_5"

은 순차적으로 생성하는 방법이 있나요 행렬리스트를 for 루프에서 사용할 수 있도록?

나는 또한 lapply를 시도해 봤지만, 나는 이것보다 루프에 익숙하지 않고, 내가 lapply에서 일하기를 원하는 기능을 얻을 수 없었다.

답변

1

각 매트릭스를 실제로 만들 때 각 매트릭스를 목록에 추가하면됩니다. 당신은 당신이 단순히 lapply를 사용할 수있는 각 매트릭스, 예를 들어,에 함수를 적용 할 그런

lst <- list(X_1, X_2, ..., X_N) 

,

result <- lapply(lst, function(x) fun(x)) 

여기서 fun()은 행렬을 입력으로 가져 와서 처리합니다.

+0

'mget' 즉''<- 5''는'lst <- mget (paste0 ("X_", 1 : N))' – akrun