Tôi có nhu cầu lấy tất cả ba hình tam giác nguyên tố tạo thành hình tam giác dưới của ma trận đối xứng. Tôi không thể nghĩ làm thế nào để lấy tất cả các mảnh theo thứ tự của cột trái xa làm việc xuống và sau đó cột tiếp theo bên phải và như vậy. Tôi biết rằng numbe ROF tam giác nhỏ bên trong của tam giác thấp hơn là:Lấy hình tam giác trong hình tam giác dưới
n = x(x - 1)/2
where: x = nrow(mats[[i]])
Ở đây tôi đã tạo ba ma trận với chữ cái (nó dễ dàng hơn cho tôi để khái niệm hóa theo cách này) và các yếu tố theo thứ tự tôi tìm kiếm
FUN <- function(n) {
matrix(LETTERS[1:(n*n)], n)
}
mats <- lapply(3:5, FUN)
vì vậy, đây là sản phẩm tôi muốn nhận được (tôi đặt nó trong mã chứ không phải là định dạng đầu ra) cho mỗi của các ma trận tạo ở trên:
list(c("B", "C", "F"))
list(c("B", "C", "G"), c("C", "D", "H"), c("G", "H", "L"))
list(c("B", "C", "H"), c("C", "D", "I"), c("D", "E", "J"),
c("H", "I", "N"), c("I", "J", "O"), c("N", "O", "T"))
Làm thế nào tôi có thể làm t nhiệm vụ của mình theo cách nhanh nhất có thể khi ở tại cơ sở R?
Không chắc nếu điều này hình ảnh của những gì tôi là sau khi có hữu ích nhưng nó có thể là:
Là một ma trận 5x5 lớn nhất mà bạn mong đợi để phải kiểm tra? –
Không, nó có thể lớn hơn (mặc dù tôi rất nghi ngờ nó sẽ bao giờ lớn hơn nhiều). –
@TylerRinker - Tôi chỉ phải bắt buộc đóng phiên R trong khi thử một số điểm chuẩn trên ma trận 10K * 10K. 1K * 1K chỉ là một vài giây. Tôi tự hỏi liệu mọi người có thể triển khai hiệu quả hơn không. – thelatemail