输入一组数字然后输出一个特定的数字?在R

时间:2014-08-28 02:52:48

标签: r

基本上我需要输入一组数字,标准是输入三个以上的数字,我输入的数字需要是数字而不是字母。如果这些标准中的任何一个失败,则需要出现错误消息。我尝试了两种方法。一种方法可能更容易,但是我不能让它们中的任何一种运行。任何帮助将非常感激。

NUM <- function(){
message("ENTER THREE NUMBERS!")          
pre>  x <- as.vector(readLines(n = 3))              

 while (x = is.numeric){                
  message("ERROR\nPLEASE ENTER THREE NUMBERS!")
   x <- is.vector(readLines(n = 3))
   }

 if(x(1) > x(3) && x(2) > x(3))           
  print(x(3))<P>

 if(x(1) > x(3) && x(2) < x(3))<P>
  print(x(2))<P>

if(x(1) < x(3) && x(2) > x(1))<b>
  print(x(1))
}
NUM()

由于某些原因,即使输入实际数字,上述代码也会重复。

NUM3 <- function(x){  
message("ENTER THREE NUMBERS!")      ###user input of 3 numbers###
        x <- is.vector(readLines(n = 3))  ### telling input is a vector####

       while (x != TRUE){                
          message("ERROR\nPLEASE ENTER THREE NUMBERS!")              
          x <- is.vector(readLines(n = 3))
       }
 BOB <- sort(x)      ###sorting the three numbers### 
 print(BOB(3))      ###then printing the 3rd number###
}
NUM3()

这段代码似乎是要走的路,我更喜欢使用它,但我又无法让它运行。

再一次,任何帮助将不胜感激。

另外,我是R编码和编码的新手。

最佳

1 个答案:

答案 0 :(得分:0)

当您使用以下代码时,

x <- is.vector(readLines(n = 3))

您的输入正在创建为字符向量:

举个例子:

> num <- function(x) {
+     message("Enter Three Numbers!")
+     x <- is.vector(readLines(n = 3))
+     print(x)
+ }

> num()
Enter Three Numbers!
2
7
4
[1] "2" "7" "4"

我希望这会有所帮助。