使用 return 子集向量值对 R 中的另一个向量进行子集化

Use return subsetted vector value to subset another vector in R

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

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

除了我的向量存储了 100 个站点。然后我有数据框,以每个站点(站点 1、站点 2 等)命名,其中包含许多测量值。我想使用 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