2016-08-23 28 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

相关问题