Tôi đã có một số mã R trông cơ bản như thế này:R ngữ cho chuyển/trường hợp
compute.quantiles <- function(mu, type) {
## 'mu' and 'type' are vectors of the same length
var <- ifelse(type=='a', 6.3523 * mu^2,
ifelse(type=='b', 234.23 * mu,
ifelse(type=='c', {s <- 9.8 * ((mu-0.3)/3)^(6/7)+0.19; mu + mu^2/s},
ifelse(type=='d', 56.345 * mu^1.5,
ifelse(type=='e', 0.238986 * mu^2,
ifelse(type=='f', mu + 1.1868823 * mu^2,
NA))))))
# ...then do something with var...
}
Một số mẫu đầu vào & đầu ra:
print(compute.quantiles(2:4, c('c','d','e')))
[1] 2.643840 292.777208 3.823776
đó làm việc một cách chính xác, nhưng nó là loại xấu xí với việc làm tổ sâu, vì vậy tôi tự hỏi nếu có một thành ngữ khác nhau hoạt động tốt hơn. Bất cứ ai có một đề nghị? Nếu switch()
chấp nhận một vectơ làm đối số đầu tiên của nó, nó sẽ hoạt động tốt, nhưng nó chỉ lấy một vô hướng.
thể bạn cung cấp một tập dữ liệu nhỏ có thể lặp lại để thử tính năng này? –
@TylerRinker đã hoàn thành. –
Tất cả những câu trả lời đều thông minh, nhưng chúng không gửi thành ngữ. Do đó, câu hỏi thú vị về cách thành ngữ để làm điều này trong R tiếp tục mở. – Pere