使用返回子集化向量值对R

时间:2015-08-19 03:29:33

标签: r vector subset

我有一个存储字符串的向量,如下所示:

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

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

y1<-(labels[1]$measurements)

但我还没能弄明白。

感谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

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