1. ホーム
  2. r

[解決済み] Rにデータを入力するためのプロンプト/アンサーシステムを作成する

2023-04-06 01:52:35

質問

私はRのことを何も知らない人(私自身はかなり未熟ですが)が使用するために、いくつかのRコードを作成しました。私は、人々が R コンソールに最初のデータを貼り付けるようにしています (結果はまちまちですが)。そして私は、人々がデータを入力するための、よりユーザーフレンドリーな方法をセットアップすることを望んでいました。

理想的には、誰かがコンソールに座り、コマンドを入力し、データを入力する方法について特定の質問を受けることができます。

たとえば、ある人が r をロードし、プロンプトが表示されたとします。

What is x value?

本人が入力する。

2

次のプロンプトを表示します。

What is y value?

人が入力する。

3

次のプロンプトを表示します。

 What are T values?

人が入力する。

 4,3,2,1

次のプロンプトを表示します。

V値とは何ですか?

パーソンタイプの:

4,5,6,9

そして、この新しく定義された4つの変数(X,Y,T,V)を使って、Rの次のステップは、あらかじめ書かれたコードを実行することです。

X+Y
V+T

そしてコンソールに答えが表示されます

5
8 8 8 10

そして、誰もが幸せになる

これは再現可能なコードのような質問ではないので申し訳ないのですが、私がRについて質問するのではなく、Rが質問するようにするにはどうしたらいいのかわかりません。

どのように解決するのですか?

これはインタラクティブなコードとしてのみ使用することを想定しているので readline() を使用することができます。私はエラーチェックを加えませんでしたが、おそらく適切な入力を保証するために、かなりの量のエラーチェックを行いたいでしょう。しかし、これが核となるコンセプトです。

fun <- function(){
  x <- readline("What is the value of x?")  
  y <- readline("What is the value of y?")
  t <- readline("What are the T values?")
  v <- readline("What are the V values?")

  x <- as.numeric(unlist(strsplit(x, ",")))
  y <- as.numeric(unlist(strsplit(y, ",")))
  t <- as.numeric(unlist(strsplit(t, ",")))
  v <- as.numeric(unlist(strsplit(v, ",")))

  out1 <- x + y
  out2 <- t + v

  return(list(out1, out2))

}