删除所有å˜é‡çš„功能

时间:2015-04-20 20:42:19

标签: r

从remove all variables except functions,我得到了删除所有å˜é‡è€Œä¸åˆ é™¤å‡½æ•°çš„命令。我ä¸æƒ³ä¸€ç›´è¾“入它,所以我试ç€æŠŠå®ƒå˜æˆã€œ/ .Rprofile中定义的函数。我是R的新手,但我æµè§ˆäº†çŽ¯å¢ƒæ¡†æž¶æ–¹æ¡ˆï¼Œå¯¹å®ƒæœ‰ä¸€ç§ä¸ç¨³å®šçš„ç†è§£ã€‚以下å°è¯•ä¼¼ä¹Žæ²¡æœ‰æ“¦é™¤ä¸»çŽ¯å¢ƒä¸­å®šä¹‰çš„时间åºåˆ—对象(当我第一次å¯åŠ¨R时命令行æ示符):

# In ~/.Rprofile
clVar <- function()
{
    rm(
        list=setdiff( ls(all.names=TRUE), lsf.str(all.names=TRUE)),
        envir=parent.frame()
    )
}

以下代ç æ˜¾ç¤ºå®ƒä¸èµ·ä½œç”¨ï¼š

( x<-ts( 1:100 ,frequency=12 ) )
clVar()
ls()

感谢您在修å¤çŽ¯å¢ƒæ¡†æž¶æ–¹é¢æ供的任何帮助。

1 个答案:

答案 0 :(得分:9)

您需è¦å°†parent.frame()环境传递给ls,而ä¸ä»…仅是rm。å¦åˆ™ls无法找到è¦åˆ é™¤çš„å˜é‡ã€‚

clVar <- function()
{
    env <- parent.frame()
    rm(
        list = setdiff( ls(all.names=TRUE, env = env), lsf.str(all.names=TRUE, env = env)),
        envir = env
    )
}