我有很多名称不规则的对象,为了能够使用其他软件包,我需要将其设置为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 对象”。
答案 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
最好不要在全局环境中创建多个对象