извлечь значение подмножества переменных, имя которого встроено в цикл for - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь передать содержимое переменной, имя которой построено на модели цикла for, в промежуточный объект в R без успеха:

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 (paste ("my_list $", i, sep = "")): объект 'my_list $ first' не найден **

my_list$first 
[1] "un" 

Почему R не может найти объект my_list$first, который явно присутствует и оценивается как un?

Ответы [ 2 ]

1 голос
/ 16 июня 2019

Мы можем просто использовать [[ вместо $

my_list[[my_vect[1]]]
#[1] "un"

Использование for loop

out <- vector('list', length(my_vect))
for(i in seq_along(my_vect)) out[[i]] <- my_list[[my_vect[i]]]

или подмножество на основе целого 'my_vect'

my_list[my_vect]
0 голосов
/ 16 июня 2019

Спасибо, это решает:

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"

Я просто хочу захватить часть с фиксированным именем ... cheers:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...