使用返回子集向量值来子集R中的另一个向量



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

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

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

y1<-(labels[1]$measurements)

但我一直没能弄明白。

谢谢。

我们可以使用mget从'labels'向量中的每个对象名称中获取值。输出将是一个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

最新更新