我有一个像这样存储字符串的向量:
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