【问题标题】:remove names of several objects in R删除 R 中多个对象的名称
【发布时间】:2019-04-18 19:42:02
【问题描述】:

我有很多不规则命名的对象,为了能够使用其他包,我需要设置为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)) &lt;- NULL : could not find function "c&lt;-")。这并不意外,当然 - 来自?names:它是一个函数“获取或设置一个对象的名称” .

【问题讨论】:

    标签: r rename


    【解决方案1】:

    一种选择是将其放在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
    

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

    【讨论】:

    • 还有一个 unname 函数可能在这种情况下有用。
    猜你喜欢
    • 2020-07-11
    • 2023-04-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多