2016-01-31 87 views
1

我需要一些R编程帮助。如何处理特殊字符

基本上我需要从用户那里获得用户输入,并在我的R脚本中用它作为变量。

当获得用户输入时,需要进行以下检查。

  1. ,看是否缺少的值存在:
    • 否则提示用户重新输入
  2. 检查地看到,只有字母被输入数字字符。
    • else提示用户重新输入。
  3. 允许一些特殊字符:$,#,&等
  4. 白色空间是允许作为第一个名字, “” 姓。

回答

0

目前还不清楚你想用你的代码的else if部分来做什么。 readline()的性质是它会返回用户输入的字符串。输入中是否包含任何不想包含的特定字符?您可以使用grepl()来标识它们并防止用户将它们作为输入输入。

如果您尝试确保用户输入内容,则应按照注释中的建议使用while循环。如果要在函数运行后使用R中的变量,则需要return()v1 - 用户输入。如果您试图用%20替换名字和姓氏之间的空格,那么您可能需要使用gsub()。请参阅下面的代码。

fun1 <- function(){ 
    v1 <- c("") 
    v1 <- readline(prompt='Enter your First & Last Name: ') 
    while (v1==""){ 
    v1 <- readline("You forgot to enter your Name. Please try again: ") 
    } 
    return(gsub(" ", "%20", v1)) 
} 

> "David%20Smith" 
+0

我试图修改Imad的代码,但还有一些额外的问题。 – J1975

+0

@ Jun1975如? –

+0

我已经在问题中编辑了我的代码以反映Imad的答案。其他问题。 (a)如何在程序中使用return语句?不只是在控制台上显示。 (b)[:blank:]似乎不起作用。我是否错误地使用它。 (c)现在输出不显示缺失和特殊字符的%20。谢谢你的帮助。 – J1975