Tôi là người dùng R mới (~ 1 ngày). Tôi đang cố gắng tạo ra tất cả 216 kết quả của ba cú ném chết sáu mặt. Vấn đề là sau đó áp dụng một số chức năng cho mỗi bộ ba (nói, giá trị mặt tối đa). Đây là những gì tôi đã đưa ra:tạo ma trận/sử dụng bên ngoài
mat <- matrix(numeric(0), ncol=3)
for (i in 1:6) {
for (j in 1:6) {
for (k in 1:6) {
mat <- rbind(mat, c(i, j, k))
}
}
}
# find maximum of each outcome
apply(mat, 1, max)
Có cách nào tốt hơn và ngắn gọn hơn để làm điều này với R? tôi sẽ đã thích sử dụng outer
theo cách này:
outer(1:6, outer(1:6, 1:6, max), max)
nhưng nó không thành công với các lỗi
Lỗi trong ngoài (1: 6, 1: 6, max): dims [sản phẩm 36] không phù hợp với chiều dài của đối tượng [1]
'bên ngoài() 'có ba đối số/thông số. Bên ngoài của bạn 'bên ngoài()' chỉ có hai. Và đối với tham số hàm không castin thành ký tự, 'max' là thứ khác với' "max" '. (một số hàm, trong đó có tham số chức năng chịu đựng cũng là một chuỗi ký tự, nhưng không phải tất cả) – jogo
@jogo, xin lỗi điều 1: 6 bị thiếu là lỗi đánh máy. Nhưng nó vẫn không hoạt động: 'bên ngoài (bên ngoài (1: 6, 1: 6, max), 1: 6, max)' ném cùng một lỗi – Aky
@Aky Bạn đã thử nghiệm các giải pháp được đăng bên dưới? – akrun