2016-01-31 84 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