删除R中几个对象的名称

时间:2018-11-15 16:31:54

标签: r rename

我有很多名称不规则的对象,为了能够使用其他软件包,我需要将其设置为NULL

例如

v <- 1
w <- 2
names(v) <- "hello"
names(w) <- "world"

我会写

names(v) <- names(w) <- NULL

但是为了简洁起见,我更喜欢类似

names(c(v,w)) <- NULL

却不起作用(“ Error in names(c(v, w)) <- NULL : could not find function "c<-")。这当然不是意外的-来自?names:它是“获取或设置 an 对象”。

1 个答案:

答案 0 :(得分:2)

一种选择是将其放置在list中,并将names设置为NULL。最好不要在全局环境中有多个对象

lst1 <- lapply(list(v = v, w = w), setNames, NULL)

此外,正如@joran所提到的,unname也可以使用,也可以使用as.vector(删除属性)

lst1 <- lapply(list(v = v, w = w), unname)

如果要更改已经存在的对象,

list2env(lst1, envir = .GlobalEnv)
v
#[1] 1

最好不要在全局环境中创建多个对象