我们说t1是:
t1 <- array(1:20, dim=c(10,10))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 1 11 1 11 1 11 1 11
[2,] 2 12 2 12 2 12 2 12 2 12
[3,] 3 13 3 13 3 13 3 13 3 13
[4,] 4 14 4 14 4 14 4 14 4 14
[5,] 5 15 5 15 5 15 5 15 5 15
[6,] 6 16 6 16 6 16 6 16 6 16
[7,] 7 17 7 17 7 17 7 17 7 17
[8,] 8 18 8 18 8 18 8 18 8 18
[9,] 9 19 9 19 9 19 9 19 9 19
[10,] 10 20 10 20 10 20 10 20 10 20
Run Code Online (Sandbox Code Playgroud)
我想从这个矩阵中删除第4-6行和第7-9行.
我知道如何逐个删除它
t2 <- t1[,-7]
t3 <- t2[,-8]
t4 <- t3[,-9]
t5 <- t4[-4,]
t6 <- t5[-5,]
t7 <- t6[-6,]
Run Code Online (Sandbox Code Playgroud)
但是,我认为这是最愚蠢的做法.您能介意一些更聪明的方法吗?
tca*_*h21 60
你可以做:
t1<- t1[-4:-6,-7:-9]
Run Code Online (Sandbox Code Playgroud)
您可以使用
t1<- t1[-4:-6,-7:-9]
Run Code Online (Sandbox Code Playgroud)
要么
t1 <- t1[-(4:6), -(7:9)]
Run Code Online (Sandbox Code Playgroud)
要么
t1 <- t1[-c(4, 5, 6), -c(7, 8, 9)]
Run Code Online (Sandbox Code Playgroud)
您可以传递vectors选择rows/columns要删除.如果您尝试删除连续的行/列,前两个方法很有用.如果您尝试删除离散, 则第三种方法很有用rows/columns.
> t1 <- array(1:20, dim=c(10,10));
> t1[-c(1, 4, 6, 7, 9), -c(2, 3, 8, 9)]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 12 2 12 2 12
[2,] 3 13 3 13 3 13
[3,] 5 15 5 15 5 15
[4,] 8 18 8 18 8 18
[5,] 10 20 10 20 10 20
Run Code Online (Sandbox Code Playgroud)