Tôi đang cố tránh sử dụng vòng lặp bằng cách sử dụng apply
để áp dụng hàm do người dùng xác định cho ma trận. Vấn đề tôi có là có các tham số bổ sung mà hàm của tôi sử dụng và chúng khác nhau đối với mỗi cột của ma trận. Dưới đây là một ví dụ đồ chơi.Sử dụng "áp dụng" để áp dụng hàm vào ma trận trong đó các thông số là cột cụ thể
Nói rằng tôi có các chức năng sau:
foo <- function(x, a, b, c) return((a*x + b)^c)
và tôi muốn áp dụng nó vào một ma trận bar
sử dụng giá trị khác nhau của a
, b
và c
cho mỗi cột.
bar <- matrix(1:15, ncol = 3)
a <- 4:6
b <- 3:1
c <- 1:3
Trong trường hợp này, đối với cột đầu tiên của bar
, sau đó a=4
, b=3
, và c=1
. Tôi cố gắng này,
apply(bar, 2, foo, a=a, b=b, c=c)
nhưng điều này rõ ràng là không đúng, vì mỗi cột sử dụng tất cả các thông số liên tục trước khi gói lại các tham số đầu tiên một lần nữa. Bất kỳ đề xuất?
Thay vì 'chia', bạn cũng có thể sử dụng' as.data.frame'. – nicola
@nicola Có, tôi nghĩ rằng để giữ nó trong 'ma trận ' – akrun
Tôi đã upvoted đầu tiên và bây giờ muốn có khả năng để thêm phiếu cho chỉnh sửa đặc biệt thanh lịch. –