褻瀆我知道要問如果有可能在R做些事情,但我在這裏!是否有可能將代碼放入R中的控制檯?
我對能夠創建將代碼放入控制檯的函數感興趣。換句話說,如果用戶輸入f("3+3")
並點擊輸入,則控制檯將等待> 3+3
的下一個命令。然後當用戶輸入時,在這種情況下將返回6
。可能?有任何想法嗎?
我希望我有更多的分享,但我從來沒有想過這個功能將是非常有用之前......你可以做到這一點
褻瀆我知道要問如果有可能在R做些事情,但我在這裏!是否有可能將代碼放入R中的控制檯?
我對能夠創建將代碼放入控制檯的函數感興趣。換句話說,如果用戶輸入f("3+3")
並點擊輸入,則控制檯將等待> 3+3
的下一個命令。然後當用戶輸入時,在這種情況下將返回6
。可能?有任何想法嗎?
我希望我有更多的分享,但我從來沒有想過這個功能將是非常有用之前......你可以做到這一點
一種方法是調用system2()
調用該合成鍵盤輸入的外部工具。我寫了一個名爲sendkeys
的C++程序,可以通過(最終)調用SendInput()
在Windows上執行此操作。演示:
system2('sendkeys','3\\\\+3');
3+3
## [1] 6
(的反斜槓是必要的,因爲我的公用事業解析其輸入的方式; +是一個必須進行轉義成爲字面元字符)
讓我知道如果你想要我的C++碼。
我對這個工具感興趣。 –
這是你需要的功能嗎?不過,也許這不是一個非常優雅的解決方案。
printEval <- function(x){
cat(">", x,"\n")
cat ("Press [enter] to continue")
line <- readline()
eval(parse(text=x))
}
編輯:對不起,我剛纔注意到的eval(解析())解決方案已經通過右鍵下的問題在註釋字段@Ping建議。
你有一些代碼可以分享嗎?你的問題很不明確。你想讓R顯示'> 3 + 3'而不是'>'作爲提示嗎? –
我沒有代碼,因爲這對於一個典型的R工作流來說太陌生了,我沒有任何地方可以從編寫代碼開始。我試圖澄清我想要的修改。 – CephBirk
爲什麼你想要用戶按兩次返回來獲得輸出?也許有更好的方法來做你想找的東西。 – Molx