Có thể cung cấp một loại danh sách các giá trị có thể cho hàm switch
của tôi không. Tôi muốn giữ mọi thứ tự động cập nhật, nếu ai đó cung cấp thông số sai.sử dụng danh sách các giá trị có thể có trong lệnh chuyển đổi
Tôi sử dụng {}
cho từng điều kiện, bởi vì tôi sẽ thực thi thêm sau đó chỉ khai báo biến này trong hàm của tôi, tôi sẽ thực hiện một số việc trong chuyển đổi này.
switch(con,
val1={
filename <- 'SILAC-DML_with_PDF.R'
},
val2={
filename <- 'SILAC-DML_with_PDF.R'
},
stop(sprintf('"%s" is an unknown condition type, please use one of "%s".\n',
con, paste(c('val1','val2'), collapse=', '))))
Tôi rất muốn có thứ gì đó giống như danh sách mà tôi có thể chỉ dán tên để nhận các giá trị có thể. Vì vậy, giải pháp lý tưởng muốn có một chút như thế này, nhưng không có một thông báo lỗi :-)
my_list <- list(val1=filename <- 'a.R',
val2=filename <- 'b.R')
switch(con,
my_list,
stop(sprintf('"%s" is an unknown condition type, please use one of "%s".\n',
con, names(my_list), collapse=', '))))
Hiện tại tôi chỉ xác định biến trong một trong các điều kiện, nhưng sau đó trong tập lệnh, tôi sẽ thực hiện nhiều việc hơn trong chuyển đổi hoặc ít nhất là kế hoạch của tôi :-) Đây là lý do tôi sử dụng cấu trúc kỳ lạ này, nhưng giải pháp của bạn cũng thú vị. – drmariod
@drmariod Ah, nhận xét hợp lệ. Trong trường hợp đó, tôi khuyên bạn nên sử dụng danh sách các hàm và đặt giá thầu. –
vì vậy chỉ cần gọi hàm trong danh sách ?! Hm, nghe như một giải pháp mà tôi đang tìm kiếm ... Tôi đã cập nhật câu hỏi của mình một chút. – drmariod