2012-04-20 39 views

Trả lời

13

Bạn cũng có thể sử dụng chức năng subset().

a <- matrix(1:9, nrow=3) 
threshhold <- 8 
subset(a, a[ , 3] < threshhold) 
2
m <- matrix(rnorm(9), ncol=3) 
m <- m[m[,3]>0,] 

Tạo một ma trận, sau đó xác định lại rằng ma trận chỉ bao gồm những hàng trong đó cột thứ ba là lớn hơn 0 (m[,3] > 0).

5

Cách tiếp cận tương tự như @JeffAllen nhưng chi tiết hơn một chút và có thể chung chung với ma trận có kích thước bất kỳ.

data <- rbind(c(1,2,3), c(1, 7, 4), c(4,6,7), c(3, 3, 3), c(4, 8, 6)) 
    data 
     [,1] [,2] [,3] 
    [1,] 1 2 3 
    [2,] 1 7 4 
    [3,] 4 6 7 
    [4,] 3 3 3 
    [5,] 4 8 6 
    # 
    # set value of x 
    x <- 3 
    # 
    # return matrix that contains only those rows where value in 
    # the final column is greater than x. 
    # This will scale up to a matrix of any size 
    data[data[,ncol(data)]>x,] 
     [,1] [,2] [,3] 
    [1,] 1 7 4 
    [2,] 4 6 7 
    [3,] 4 8 6 
Các vấn đề liên quan