使用[< - 运算符来修改数据行

时间:2015-09-23 11:35:23

标签: r matrix

我有一些数据

data <- diag(5)

我想使用[<-运算符更改一行。

结果应为:

data[1,] <- 2 

> data
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]    0    1    0    0    0
[3,]    0    0    1    0    0
[4,]    0    0    0    1    0
[5,]    0    0    0    0    1

我知道我可以做到。

`[<-`(data, i=1, j=3, 2)

给出了

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    8    0    0
[2,]    0    1    0    0    0
[3,]    0    0    1    0    0
[4,]    0    0    0    1    0
[5,]    0    0    0    0    1

但我如何在线(或列,同一问题)进行操作?

我试过了j=NULLj=integer(0),它没有用。我可以j=1:5得到我想要的但我想知道如何模仿data[1,] <- 2而不是data[1,1:5] <- 2

2 个答案:

答案 0 :(得分:3)

> `[<-`(data, 1, , 2)   # blank 2nd argument
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]    0    1    0    0    0
[3,]    0    0    1    0    0
[4,]    0    0    0    1    0
[5,]    0    0    0    0    1

答案 1 :(得分:0)

您可以使用ncol确保设置所有列:

`[<-`(data, i = 1, j = 1:ncol(data), 2)