【问题标题】:Use return subsetted vector value to subset another vector in R使用返回子集化向量值对 R 中的另一个向量进行子集化
【发布时间】:2015-08-19 03:29:32
【问题描述】:

我有一个向量存储这样的字符串:

labels <- as.character(c('site1', 'site2'))

除了我的向量存储了 100 多个网站。然后我有数据框,以每个站点(站点 1、站点 2 等)命名,有几十个测量值。我想使用 for 循环从数据框中迭代访问和绘制值。在这样做时,我希望使用从第一个向量子集返回的值来子集数据框,如下所示:

y1<-(labels[1]$measurements)

但我一直无法弄清楚。

谢谢。

【问题讨论】:

    标签: r vector subset


    【解决方案1】:

    我们可以使用mget 从“标签”向量中的每个对象名称中获取值。输出将是list。我们可以使用lapply 循环list 并提取measurements 列(如果我正确理解代码)。

    lst <- lapply(mget(labels), function(x) x$measurements)
    

    list 中进行所有操作可能会更好。但是,如果您需要在全局环境中创建一些额外的对象(不推荐),我们可以使用paste 更改list 元素的名称,然后使用list2env

    colnames(lst) <- paste0('y', seq_along(lst))
    list2env(lst, envir=.GlobalEnv)
    y1 
    y2
    

    【讨论】:

    • 你的回答对我来说有点过分了;我从展示 mget 的第一部分中得到了我需要的东西。谢谢!
    猜你喜欢
    • 2018-03-30
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2013-07-21
    相关资源
    最近更新 更多