首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取在for循环中生成其名称的变量子集的值。

提取在for循环中生成其名称的变量子集的值。
EN

Stack Overflow用户
提问于 2019-06-16 19:58:24
回答 2查看 35关注 0票数 1

我试图将其名称构建在for循环模型上的变量的内容传递到R中的中间对象,但没有成功:

代码语言:javascript
复制
my_list <- list(first = "un", second = "deux", third = "trois")
my_vect <- c("first","second","third")
for(i in my_vect){intermediate <- get(paste("my_list$",i,sep=""))} 

get中的错误(粘贴(“my_list$”,i,sep = "")):对象'my_list$first‘找不到**

代码语言:javascript
复制
my_list$first 
[1] "un" 

为什么R找不到明显存在的对象my_list$first,并对un进行评估?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-16 19:59:38

我们可以用[[代替$

代码语言:javascript
复制
my_list[[my_vect[1]]]
#[1] "un"

使用for循环

代码语言:javascript
复制
out <- vector('list', length(my_vect))
for(i in seq_along(my_vect)) out[[i]] <- my_list[[my_vect[i]]]

或者是基于整个“my_vect”的子集

代码语言:javascript
复制
my_list[my_vect]
票数 1
EN

Stack Overflow用户

发布于 2019-06-16 20:11:04

谢谢,它解决了:

代码语言:javascript
复制
out <- vector('list', length(my_vect))
for(i in seq_along(my_vect)) out[[i]] <- my_list[[my_vect[i]]]
out

#[[1]]
#[1] "un"

#[[2]]
#[1] "deux"

#[[3]]
#[1] "trois"

for(i in seq_along(my_vect)) out <- my_list[[my_vect[i]]]
out

#[1] "trois"

我只是想用一个固定的名字来捕捉其中的一部分.干杯:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56622198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档