我有一个存储字符串的向量,如下所示:
labels <- as.character(c('site1', 'site2'))
除了我的矢量存储100个网站。然后我有数据框,以每个网站(site1,site2等)命名,有几十个测量。我想使用for循环来迭代访问和绘制数据帧中的值。在这样做时,我希望使用从第一个向量的子集返回的值来对数据帧进行子集化,如下所示:
y1<-(labels[1]$measurements)
但我还没能弄明白。
感谢。
答案 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