【问题标题】:Indexing a variable by another variable in R用R中的另一个变量索引一个变量
【发布时间】:2018-10-17 06:05:42
【问题描述】:

我有以下 2 个矩阵。

#generate matrices    
x11=matrix(rep("green",2), 4, (2)) 
y11=matrix(c(1,0,0,1,0,0,1,1),nrow=4,byrow = T)

> x11
         [,1]    [,2]   
    [1,] "green" "green"
    [2,] "green" "green"
    [3,] "green" "green"
    [4,] "green" "green"

> y11
             [,1] [,2]
        [1,]    1    0
        [2,]    0    1
        [3,]    0    0
        [4,]    1    1

所以现在我需要通过考虑 y11 的值来改变 x11 的 (i,j)indexes 的值。这意味着如果 y11 的值为零,那么我需要将 x11 的索引更改为红色。 (例如:- 我需要将 x11 的第一行和第二列对应的值更改为红色,因为第一行和第二列的 y11 的值为零)

为此,我使用了以下代码段。但它似乎不起作用。

  x11[y11] = "red"

谁能帮我解决这个问题?

【问题讨论】:

    标签: r indexing


    【解决方案1】:

    我们可以用 'y11' 创建一个逻辑矩阵,即!y11 为所有 0 返回 TRUE,其他为 FALSE。使用它来子集“x11”并将这些元素分配给“红色”

    x11[!y11] <- "red"
    

    如果我们不想改变初始矩阵,那么使用replace

    replace(x11, !y11, "red")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      相关资源
      最近更新 更多