2010-03-29 27 views
5

Ví dụ, nếu tôi cần mà người sử dụng xác định số hàng và cột của một ma trận:Làm cách nào để cho phép nhiều đầu vào từ người dùng bằng R?

PROMPT: Số hàng ?:

USER INPUT: [một số]

tôi cần R 'chờ đợi' cho đầu vào. Sau đó lưu [một số] vào biến số v1. Tiếp theo,

PROMPT: Số cột ?:

USER INPUT: [số khác]

Cũng lưu [số khác] vào một v2 biến. Cuối cùng, tôi sẽ có hai biến (v1, v2) sẽ được sử dụng trong phần còn lại của mã.

"readline" chỉ hoạt động cho một đầu vào tại một thời điểm. Tôi không thể chạy hai dòng với nhau

v1 <- readline("Number of rows?: ") 
v2 <- readline("Number of columns?: ") 

Bất kỳ ý tưởng hoặc đề xuất nào?

Cảm ơn bạn trước

Trả lời

5

Bạn có thể kết hợp các báo cáo vào một điều khoản:

{ v1 <- readline("Number of rows?: "); v2 <- readline("Number of columns?: ") } 

Hoặc nói chung, làm cho họ thành một chức năng:

readlines <- function(...) { 
    lapply(list(...), readline) 
} 
readlines("Number of rows?: ", "Number of columns?: ") 
4

Bạn có thể tìm thấy hữu ích các tkentry chức năng trong gói tcltk (để biết thêm ví dụ, xem here). Ngoài ra còn có một chức năng guiDlg trong svDialogs gói

library(svDialogs) 
display(guiDlg("SciViews-R", "My first dialog box with SciViews-R")) 

Kiểm tra this page để biết thêm ..

Các vấn đề liên quan