R语言 接受用户的输入

R语言 接受用户的输入

开发人员经常需要与用户互动,要么是为了获得数据,要么是为了提供某种结果。今天,大多数程序都使用对话框作为要求用户提供某种类型的输入的方式。像其他编程语言一样,在R中也可以接受用户的输入。为了做到这一点,在R语言中有两种方法。

  • 使用 readline() 方法
  • 使用 scan()方法

使用readline()方法

在R语言中, readline() 方法接受字符串格式的输入。如果一个人输入一个整数,那么它将被输入为一个字符串,比如说,一个人想输入 255 ,那么它将被输入为 “255 “,就像一个字符串。所以人们需要将输入的值转换成他所需要的格式。在这种情况下,字符串 “255 “被转换为整数255。为了将输入的值转换为所需的数据类型,R中有些函数,

  • as.integer(n ); -> 转换为整数
  • as.numeric(n) ;->转换为数字类型(浮点,双倍等)。
  • as.complex(n) ; -> 转换为复数(即3+2i)
  • as.Date(n) — 转换为日期…,等等。

语法:

var = readline();

var = as.integer(var);

注意,可以用” <-“代替”=”

例如:

# R program to illustrate
# taking input from the user
 
# taking input using readline()
# this command will prompt you
# to input a desired value
var = readline();
 
# convert the inputted value to integer
var = as.integer(var);
 
# print the value
print(var)

输出:

255
[1] 255

我们也可以在控制台窗口显示信息,告诉用户应该在程序中输入什么。要做到这一点,必须在 readline() 函数中使用一个名为 prompt 的 参数。事实上, prompt 参数为其他函数构建文件提供了便利。但 提示参数 不是必须一直使用的。

语法

var1 = readline(prompt = “Enter any number : “);

或者,

var1 = readline(“Enter any number : “)。

例子:

# R program to illustrate
# taking input from the user
 
# taking input with showing the message
var = readline(prompt = "Enter any number : ");
 
# convert the inputted value to an integer
var = as.integer(var);
 
# print the value
print(var)

输出:

Enter any number : 255
[1] 255

R语言 获取多个输入

在R语言中获取多个输入和获取单个输入是一样的,只是需要为输入定义多个 readline() 。可以用 大括号 在里面定义多个 readline()

语法

var1 = readline(“Enter 1st number : “);
var2 = readline(“Enter 2nd number : “);
var3 = readline(“Enter 3rd number : “);
var4 = readline(“Enter 4th number : “);
or,
{
var1 = readline(“Enter 1st number : “);
var2 = readline(“Enter 2nd number : “);
var3 = readline(“Enter 3rd number : “);
var4 = readline(“Enter 4th number : “);
}

例子:

# R program to illustrate
# taking input from the user
 
# taking multiple inputs
# using braces
{
    var1 = readline("Enter 1st number : ");
    var2 = readline("Enter 2nd number : ");
    var3 = readline("Enter 3rd number : ");
    var4 = readline("Enter 4th number : ");
}
 
# converting each value
var1 = as.integer(var1);
var2 = as.integer(var2);
var3 = as.integer(var3);
var4 = as.integer(var4);
 
# print the sum of the 4 number
print(var1 + var2 + var3 + var4)

输出:

Enter 1st number : 12
Enter 2nd number : 13
Enter 3rd number : 14
Enter 4th number : 15
[1] 54

R语言 获取字符串和字符输入

接受字符串输入与接受整数输入是一样的。对于 “字符串”,不需要将输入的数据转换成字符串,因为R总是将输入作为字符串。而对于 “字符”,需要转换为 “字符”。有时它可能不会引起任何错误。人们也可以把字符输入当作字符串,但输入的数据在整个程序中都是字符串类型。因此,将输入的数据作为 “字符 “使用的最好方法是将数据转换为字符。

语法 :

string :

var1 = readline(prompt = “Enter your name : ” );

character :

var1 = readline(prompt = “Enter any character : ” );

var1 = as.character(var1)

例如:

# R program to illustrate
# taking input from the user
 
# string input
var1 = readline(prompt = "Enter your name : ");
 
# character input
var2 = readline(prompt = "Enter any character : ");
# convert to character
var2 = as.character(var2)
 
# printing values
print(var1)
print(var2)

输出:

Enter your name : GeeksforGeeks
Enter any character : G
[1] "GeeksforGeeks"
[1] "G"

使用scan()方法

在R语言中获取用户输入的另一种方式是使用一个方法,称为 scan() 方法。这个方法从控制台获取输入。当需要为任何数学计算或任何数据集快速获取输入时,这个方法是一个非常方便的方法。该方法以向量或列表的形式读取数据。这个方法也可以用来从文件中读取输入。

语法:

x = scan()

scan() 方法是持续地接受输入,要终止输入过程,需要在控制台按2次 回车键

例子:

这是一个使用 scan() 方法获取输入的简单方法,一些整数被作为输入,并在控制台的下一行打印这些数值。

# R program to illustrate
# taking input from the user
 
# taking input using scan()
x = scan()
# print the inputted values
print(x)

输出:

1: 1 2 3 4 5 6
7: 7 8 9 4 5 6
13: 
Read 12 items
 [1] 1 2 3 4 5 6 7 8 9 4 5 6

说明

在两行中共有12个整数被输入,当控制到第三行时,按2次 回车键 ,输入过程将被终止。

使用scan()方法获取双倍、字符串、字符类型的值

要获取双倍、字符串、字符类型的输入,请在 scan() 方法中指定输入值的类型。要做到这一点,有一个叫做 what的 参数,通过它可以指定输入值的数据类型。

语法:

x = scan(what = double()) -用于双倍数

x = scan(what = ” “) -用于字符串

x = scan(what = character()) -用于字符串

例如:

# R program to illustrate
# taking input from the user
 
# double input using scan()
d = scan(what = double())
 
# string input using 'scan()'
s = scan(what = " ")
 
# character input using 'scan()'
c = scan(what = character())
 
# print the inputted values
print(d) # double
print(s) # string
print(c) # character

输出:

1: 123.321 523.458 632.147
4: 741.25 855.36
6: 
Read 5 items
1: geeksfor geeks gfg
4: c++ R java python
8: 
Read 7 items
1: g e e k s f o
8: r g e e k s
14: 
Read 13 items
[1] 123.321 523.458 632.147 741.250 855.360
[1] "geeksfor" "geeks"    "gfg"      "c++"      "R"        "java"     "python"  
[1] "g" "e" "e" "k" "s" "f" "o" "r" "g" "e" "e" "k" "s"

解释 :

这里,双倍项的数量是5,排序项的数量是7,字符项的数量是13。

使用scan()方法读取文件数据

使用 scan() 方法读取文件与普通的控制台输入相同,唯一的问题是,需要将文件名和数据类型传递给 scan() 方法。

语法:

x = scan(“fileDouble.txt”, what = double()) –for double

x = scan(“fileString.txt”, what = ” ” ) –for string

x = scan(“fileChar.txt”, what = character() –for character

示例:

# R program to illustrate
# taking input from the user
 
# string file input using scan()
s = scan("fileString.txt", what = " ")
 
# double file input using scan()
d = scan("fileDouble.txt", what = double())
 
# character file input using scan()
c = scan("fileChar.txt", what = character())
 
# print the inputted values
print(s) # string
print(d) # double
print(c) # character

输出:

Read 7 items
Read 5 items
Read 13 items
[1] "geek"   "for"    "geeks"  "gfg"    "c++"    "java"   "python"
[1] 123.321 523.458 632.147 741.250 855.360
[1] "g" "e" "e" "k" "s" "f" "o" "r" "g" "e" "e" "k" "s"

将数据文件保存在程序保存的同一位置,以便更好地访问。否则文件的总路径需要在 scan() 方法中定义。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程