2016-08-05 15 views
0

で行列のリストを作成し、私はX_1、X_2、X_3を、ラベル付けされている行列のリストを生成している...などforループを使用して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)  
      } 
     } 

:出力をもたらす

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'つまり' lst < - mget(paste0( "X_"、1:N)) '' N < - 5 ' – akrun

関連する問題