R- Magrittr软件包中的管道不适用于功能RM()


x = 10
rm(x) # removed x from the environment
x = 10
x %>% rm() # Doesn't remove the variable x 

1(为什么管道技术不删除变量?
2(我如何使用管道和rm((删除变量?

脚注:这个问题可能与Magrittr软件包中的管道相似

使用%<>%操作员将值分配给NULL

x %<>% 
   rm()

在管道中,我们获得了值,而不是对象。因此,通过使用%<>%,即复合分配运算符,将" x"的值分配给null

x
#NULL

如果我们需要删除对象,则以character字符串将其传递给rmlist参数,该参数采用character对象,然后指定environment

x <- 10
"x" %>% 
    rm(list = ., envir = .GlobalEnv)

当我们调用'x'

x

错误:找不到对象'x'

...不起作用的原因是对象.未在rm

中评估
x <- 10
"x" %>%
    rm(envir = .GlobalEnv)

警告消息:在rm(。,envir = .globalenv(中:对象'。找不到


另一个选择是使用do.call

x <- 10
"x" %>%
   list(., envir = .GlobalEnv) %>% 
   do.call(rm, .)
x

错误:找不到对象'x'

相关内容

最新更新