2016-10-18 21 views
0

Iマーカーは、I行を割り当てるベクトルを作成しようとしている本10使用データフレーム列の名前と値

combinations_df <- expand.grid(
marker_a = c(0, 1), 
marker_b = c(0, 1), 
marker_c = c(0, 1), 
marker_d = c(0, 1) 
) 

    marker_a marker_b marker_c marker_d 
1   0  0  0  0 
2   1  0  0  0 
3   0  1  0  0 
4   1  1  0  0 
5   0  0  1  0 
6   1  0  1  0 
7   0  1  1  0 
8   1  1  1  0 
9   0  0  0  1 
10  1  0  0  1 
11  0  1  0  1 
12  1  1  0  1 
13  0  0  1  1 
14  1  0  1  1 
15  0  1  1  1 
16  1  1  1  1 

であるか否かを表す異なる組み合わせのデータフレームを有しますそれぞれの列を使用する名前とその値

例出力:

            marker_a marker_b marker_c marker_d 
marker_a_0-marker_b_0-marker_c_0-marker_d_0   0  0  0  0 
marker_a_1-marker_b_0-marker_c_0-marker_d_0   1  0  0  0 
... 
+0

あなたは '適用されます(combinations_df、1、機能(x)はpaste0(名(X)を探しています、 "_" 、x、collapse = " - ")) '? –

答えて

1

これはそれを行う必要があります。

apply(combinations_df, 
     MARGIN = 1, 
     FUN = function(x) { 
          paste0(c(rbind(colnames(combinations_df), x)), 
            collapse = "-") 
         } 
    ) 
+0

私はまだRに比較的新しいです。これはapply()がデータフレームをリストとして受け取ることを意味しますか? – jesusgarciab

+0

Rコンソールで '?apply'とタイプすると、' apply'関数について読むことができます。これは、データフレームを含む配列と行列で機能します。私はあなたが「リストとして」それらを取ることによって何を意味するのか分かりません。もしあなたがRに慣れていないなら、Rのデータ構造を読むことは非常に役に立ちます。 – Zach

関連する問題