我有一些数据
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=NULL
,j=integer(0)
,它没有用。我可以j=1:5
得到我想要的但我想知道如何模仿data[1,] <- 2
而不是data[1,1:5] <- 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)