2016-08-23 9 views
-1

これは単純な解決策ではない、チャンピオンのような顔の手のひらを作るだろうと私はショックを受けます。データフレームの行を名前付き文字列に置き換える

私は、ネットワークグラフファイルを作成するためにDFの色を構築しています。ユーザがGUIと対話するとき、特定の行が特定のエッジおよびノー​​ドの色に対応するように変更されます。ここで

は、最小限の例です:

node_col_1 <- c(red=0, green=153, blue=255, alpha=1) 
node_col_2 <- c(red=163, green=160, blue=25, alpha=1) 

test_colors <- 
t(
    sapply(
    seq_len(5), 
    FUN= function(x) node_col_1 
) 
) 

のでtest_colorsは次のとおりです。

その後
red green blue alpha 
[1,] 0 153 255  1 
[2,] 0 153 255  1 
[3,] 0 153 255  1 
[4,] 0 153 255  1 
[5,] 0 153 255  1 

、行2と3を交換しようとする:

> test_colors[c(2,3), ]<- node_col_2 

    red green blue alpha 
[1,] 0 153 255  1 
[2,] 163 25 163 25 
[3,] 160  1 160  1 
[4,] 0 153 255  1 
[5,] 0 153 255  1 

これは、それが列方向に交換しました(平らなdfで)、列方向ではありません。この交換を行う簡単な方法はありますか?

+2

あなたが持っているものはdata.frameではありません。それは行列です。 – Roland

+0

ああ。それは私の最初の試みのすべてで大きな問題になるでしょう。 \ * facepalm \ * – bigfoot56

答えて

1

Whamp Whamp。私は簡単な方法を考え出した。最初に行列にラップしてください....

> test_colors[c(2,3), ]<- matrix(node_col_2, nrow = 2, ncol =4, byrow = TRUE) 
> test_colors 
    red green blue alpha 
[1,] 0 153 255  1 
[2,] 163 160 25  1 
[3,] 163 160 25  1 
[4,] 0 153 255  1 
[5,] 0 153 255  1 
+1

また、 'test_colors [c(2,3)、] < - rep(node_col_2、each = 2)'が動作するはずです。 – jogo

関連する問題