2015-06-29 85 views
-1

褻瀆我知道要問如果有可能在R做些事情,但我在這裏!是否有可能將代碼放入R中的控制檯?

我對能夠創建將代碼放入控制檯的函數感興趣。換句話說,如果用戶輸入f("3+3")並點擊輸入,則控制檯將等待> 3+3的下一個命令。然後當用戶輸入時,在這種情況下將返回6。可能?有任何想法嗎?

我希望我有更多的分享,但我從來沒有想過這個功能將是非常有用之前......你可以做到這一點

+1

你有一些代碼可以分享嗎?你的問題很不明確。你想讓R顯示'> 3 + 3'而不是'>'作爲提示嗎? –

+0

我沒有代碼,因爲這對於一個典型的R工作流來說太陌生了,我沒有任何地方可以從編寫代碼開始。我試圖澄清我想要的修改。 – CephBirk

+1

爲什麼你想要用戶按兩次返回來獲得輸出?也許有更好的方法來做你想找的東西。 – Molx

回答

1

一種方法是調用system2()調用該合成鍵盤輸入的外部工具。我寫了一個名爲sendkeys的C++程序,可以通過(最終)調用SendInput()在Windows上執行此操作。演示:

system2('sendkeys','3\\\\+3'); 
3+3 
## [1] 6 

(的反斜槓是必要的,因爲我的公用事業解析其輸入的方式; +是一個必須進行轉義成爲字面元字符)

讓我知道如果你想要我的C++碼。

+0

我對這個工具感興趣。 –

0

這是你需要的功能嗎?不過,也許這不是一個非常優雅的解決方案。

printEval <- function(x){ 
    cat(">", x,"\n") 
    cat ("Press [enter] to continue") 
    line <- readline() 
    eval(parse(text=x)) 
} 

編輯:對不起,我剛纔注意到的eval(解析())解決方案已經通過右鍵下的問題在註釋字段@Ping建議。

相關問題